Na tej stronie opisano, jak zaimplementować tekst w czasie rzeczywistym (RTT) w systemie Android 9. RTT to funkcja dla użytkowników niesłyszących i niedosłyszących, która zastępuje technologię telefonu tekstowego (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 wpisywany znak po znaku, obsługiwać komunikację pod numerem 911 i zapewniać wsteczną możliwość korzystania z TTY.
W przypadku połączenia RTT zarówno osoba dzwoniąca, jak i odbiorca mają wskazania, że biorą udział w połączeniu RTT. Po nawiązaniu połączenia obie strony rozpoczynają połączenie RTT, w którym aktywowane jest wprowadzanie tekstu i klawiatura. Podczas wpisywania tekst pojawia się i jest wysyłany w miarę wpisywania, znak po znaku.
Przykłady i źródło
Komponenty Framework są dostępne w AOSP pod adresem Call.RttCall i Connection.RttTextStream . Komponenty IMS/modemu są zastrzeżone i powinny być dostarczone przez dostawcę IMS/modemu. Dostępna jest także implementacja referencyjna dialera RTT.
Kod dialera AOSP dla RTT:
- InCall: /Java/com/Android/incallui/rtt
- Dziennik połączeń: /Java/com/Android/dialer/rtt
Realizacja
Aby zaimplementować RTT, powinieneś współpracować z dostawcą modemu/SoC, ponieważ wymagany jest modem obsługujący RTT. Możesz uaktualnić system do systemu Android 9 lub przenieść listę poprawek platformy telefonicznej do systemu Android 8.0. Interfejsy API dodane w systemie Android 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 com.android.phone
i dialerze AOSP.
Aby zaimplementować RTT, zaimportuj kod AOSP i dostarcz stos IMS, który implementuje @SystemApis po stronie IMS dla RTT. To wymaga:
- Włączanie/wyłączanie RTT za pomocą
ImsConfig#setProvisionedValue(RTT_SETTING_ENABLED)
- Wskazywanie statusu RTT połączenia za pomocą
ImsStreamMediaProfile#mRttMode
Obsługa następujących metod w
ImsCallSession
:-
sendRttMessage
-
sendRttModifyRequest
-
sendRttModifyResponse
-
Wsparcie dla wywoływania następujących metod w
ImsCallSessionListener
:-
callSessionRttModifyRequestReceived
-
callSessionRttModifyResponseReceived
-
callSessionRttMessageReceived
-
Dostosowywanie
Możesz włączyć lub wyłączyć tę funkcję za pomocą konfiguracji urządzenia, config_support_rtt
, w nakładce konfiguracji urządzenia dla packages/services/Telephony
i flagi konfiguracji operatora, CarrierConfigManager.RTT_SUPPORTED_BOOL
, w plikach konfiguracyjnych operatora. W zależności od konfiguracji funkcja jest dostępna w ustawieniach dostępności lub nie. Użyj konfiguracji urządzenia, aby zmienić ustawienia domyślne. Domyślnie funkcja ta jest wyłączona.
Walidacja
Aby sprawdzić poprawność implementacji RTT, uruchom testy CTS i wykonaj testy RTT dialera.
Testy CTS
Testy CTS ( android.cts.telecom.RttOperationsTest
) obejmują część implementacji AOSP. Należy dostarczyć własne testy dla części stosu IMS implementacji.
Testowanie dialera RTT
Opis scenariusza | Próba interfejsu użytkownika |
---|---|
Jeśli na urządzeniu funkcja RTT jest wyłączona, zostanie wyświetlone okno dialogowe dotyczące funkcji RTT. | |
W ustawieniach Dialera w obszarze Ustawienia > Dostępność dostępny jest ekran Tekst w czasie rzeczywistym, który umożliwia wybranie innego trybu RTT. | |
Gdy funkcja RTT jest domyślnie włączona:
| |
Jeśli RTT jest wyłączony na urządzeniu:
| |
Jeśli na urządzeniu jest włączony tryb RTT i domyślnie ustawione jest odbieranie wszystkich połączeń w trybie RTT:
| |
W interfejsie użytkownika połączenia RTT dostępne są opcje umożliwiające użytkownikom kontrolowanie stanu połączenia głosowego i uzyskiwanie ogólnej pomocy na temat korzystania z RTT:
| |
Na ekranie Szczegóły połączenia wybranie łącza Zobacz transkrypcję powoduje wyświetlenie pełnego widoku rozmowy z pełnym tekstem sesji RTT. Wyświetlane są znaczniki czasu. Użytkownik może powrócić do ekranu Szczegóły połączenia za pomocą przycisku Wstecz. |