Z tego artykułu dowiesz się, jak wdrożyć tekst w czasie rzeczywistym (RTT) na urządzeniu z Androidem 9. RTT to funkcja dla osób niesłyszących lub niedosłyszących, która zastępuje technologię teleksu (TTY). Dzięki tej funkcji urządzenia mogą używać tego samego numeru telefonu do połączeń głosowych i RTT, jednocześnie przesyłać tekst w miarę wpisywania znak po znaku, obsługiwać połączenia z numerem alarmowym 911 i zapewniać zgodność wsteczną z urządzeniami TTY.
Podczas połączenia RTT zarówno rozmówca, jak i odbiorca widzą informację, że uczestniczą w połączeniu RTT. Po połączeniu obie strony przechodzą do połączenia RTT, w którym aktywowane jest wpisywanie tekstu i klawiatura. Podczas pisania tekst pojawia się i jest wysyłany na bieżąco, znak po znaku.
Przykłady i źródło
Komponenty platformy są dostępne w AOSP w klasach Call.RttCall i Connection.RttTextStream. Komponenty IMS/modemu są objęte prawami własności i powinny być dostarczane przez dostawcę IMS/modemu. Dostępna jest też referencyjna implementacja RTT w aplikacji do wybierania numerów.
Kod dialera AOSP dla RTT:
- InCall: /java/com/android/incallui/rtt
- Dziennik połączeń:/java/com/android/dialer/rtt
Implementacja
Aby wdrożyć RTT, musisz współpracować z dostawcą modemu lub układu SoC, ponieważ wymagany jest modem obsługujący RTT. Możesz przejść na Androida 9 lub przenieść listę poprawek platformy telefonicznej do Androida 8.0. Interfejsy API dodane w Androidzie 8.0 AOSP nie będą działać.
Ta funkcja korzysta z publicznych interfejsów API w AOSP w android.telecom
i @SystemApis w android.telephony.ims
. Cały interfejs użytkownika znajduje się w aplikacji com.android.phone
i w dialerze AOSP.
Aby wdrożyć RTT, zaimportuj kod AOSP i dostarcz stos IMS, który implementuje interfejsy API systemu po stronie IMS dla RTT. Wymagania:
- Włączanie i wyłączanie RTT za pomocą
ImsConfig#setProvisionedValue(RTT_SETTING_ENABLED)
- Informowanie o stanie połączenia RTT za pomocą
ImsStreamMediaProfile#mRttMode
Obsługa tych metod w
ImsCallSession
:sendRttMessage
sendRttModifyRequest
sendRttModifyResponse
Obsługa wywoływania tych metod w
ImsCallSessionListener
:callSessionRttModifyRequestReceived
callSessionRttModifyResponseReceived
callSessionRttMessageReceived
Dostosowywanie
Tę funkcję możesz włączyć lub wyłączyć za pomocą konfiguracji urządzenia, config_support_rtt
w nakładce konfiguracji urządzenia dla packages/services/Telephony
oraz flagi konfiguracji operatora, CarrierConfigManager.RTT_SUPPORTED_BOOL
w plikach konfiguracji operatora.
W zależności od konfiguracji funkcja jest dostępna w ustawieniach ułatwień dostępu lub nie. Aby zmienić ustawienia domyślne, użyj konfiguracji urządzenia. Domyślnie ta funkcja jest wyłączona.
Weryfikacja
Aby sprawdzić implementację RTT, uruchom testy CTS i przeprowadź testy RTT w aplikacji do wybierania numerów.
Testy CTS
Testy CTS (android.cts.telecom.RttOperationsTest
) obejmują część implementacji AOSP. Musisz dostarczyć własne testy dla części implementacji dotyczącej stosu IMS.
Testowanie RTT w aplikacji Telefon
Opis scenariusza | Makieta interfejsu |
---|---|
Jeśli RTT jest wyłączona na urządzeniu, wyświetli się okno dialogowe dotyczące RTT. | |
W ustawieniach aplikacji Telefon dostępny jest ekran Wysyłanie SMS-ów w czasie rzeczywistym w sekcji Ustawienia > Ułatwienia dostępu, który umożliwia wybór innego trybu RTT. | |
Gdy RTT jest domyślnie włączone:
|
|
Jeśli funkcja RTT jest wyłączona na urządzeniu:
|
|
Jeśli RTT jest włączone na urządzeniu i ma domyślne ustawienie odbierania wszystkich połączeń jako połączeń RTT:
|
|
W interfejsie połączenia RTT dostępne są opcje, które umożliwiają użytkownikom kontrolowanie stanu połączenia głosowego i uzyskiwanie ogólnej pomocy dotyczącej korzystania z RTT:
|
|
Na ekranie Szczegóły połączenia kliknij link Zobacz transkrypcję, aby wyświetlić pełną rozmowę z całym tekstem sesji RTT. Wyświetlane są sygnatury czasowe. Użytkownik może wrócić do ekranu Szczegóły połączenia, klikając przycisk Wstecz. |