Bu kılavuzda, Telecom API'yi açıp şunun için bağlantıyı ayarlayın: VoIP aramaları Şunu okuyun: Telefon araması uygulaması oluşturma rehberi inceleyin.
ConnectionService
kullanarak
Connection
sınıfta
ses durumunu ve kullanılabilir Bluetooth cihazlarının listesini görebilir,
sesi, seçilen Bluetooth cihazına ekleyin.
VoIP Bağlantısı ve Bağlantı Hizmeti
Şundan başlayan bir VoIPConnection
sınıfı oluştur:
Connection
Bu sınıf, mevcut görüşmenin durumunu kontrol eder.
Telefon araması uygulaması oluşturma rehberi
bunu kendi kendine yönetilen bir uygulama yapın ve bir VoIP için ses modunu ayarlayın
bir uygulamadır.
Kotlin
class VoIPConnection : Connection() { init { setConnectionProperties(PROPERTY_SELF_MANAGED) setAudioModeIsVoip(true) } }
Java
public class VoIPConnection extends Connection { public VoIPConnection() { setConnectionProperties(PROPERTY_SELF_MANAGED); setAudioModeIsVoip(true); } }
Sonra, şurada bu sınıfın bir örneğini döndürün:
Şu durumda ConnectionService
:
sırasında görünür.
Kotlin
class VoIPConnectionService : ConnectionService() { override fun onCreateOutgoingConnection( connectionManagerPhoneAccount: PhoneAccountHandle, request: ConnectionRequest, ): Connection { return VoIPConnection() } }
Java
public class VoIPConnectionService extends ConnectionService { @Override public Connection onCreateOutgoingConnection(PhoneAccountHandle connectionManagerPhoneAccount, ConnectionRequest request) { return new VoIPConnection(); } }
Manifestin VoIPConnectionService
sınıfını doğru şekilde işaret ettiğinden emin olun.
<service android:name=".voip.TelegramConnectionService" android:permission="android.permission.BIND_TELECOM_CONNECTION_SERVICE">
<intent-filter>
<action android:name="android.telecom.ConnectionService"/>
</intent-filter>
</service>
Bu özel Connection
ve
ConnectionService
sınıfta
sırasında hangi cihaz türünü ve ne tür bir ses yönlendirmesi kullanmak istediğinizi
çağrısına bir tıklama URL'si eklemeniz gerekir.
Sesin mevcut durumunu al
Mevcut ses durumunu öğrenmek için şunu arayın:
getCallAudioState()
.
getCallAudioState()
Bluetooth, Kulaklık, Kablolu veya Kablolu
Hoparlör.
mAudioState = connection.getCallAudioState()
Durum Değiştirildiğinde
Geçersiz kılarak CallAudioState'teki değişikliklere abone olun
onCallAudioStateChanged()
.
Bu uyarı, eyaletteki herhangi bir değişiklik konusunda sizi uyarır.
Kotlin
fun onCallAudioStateChanged(audioState: CallAudioState) { mAudioState = audioState }
Java
@Override public void onCallAudioStateChanged(CallAudioState audioState) { mAudioState = audioState; }
Geçerli cihazı al
Geçerli etkin cihazı al:
CallAudioState.getActiveBluetoothDevice()
.
Bu işlev, etkin Bluetooth cihazını döndürür.
Kotlin
val activeDevice: BluetoothDevice = mAudioState.getActiveBluetoothDevice()
Java
BluetoothDevice activeDevice = mAudioState.getActiveBluetoothDevice();
Bluetooth cihazları al
CallAudioState.getSupportedBluetoothDevices()
.
Kotlin
val availableBluetoothDevices: Collection= mAudioState.getSupportedBluetoothDevices()
Java
CollectionavailableBluetoothDevices = mAudioState.getSupportedBluetoothDevices();
Arama sesini yönlendir
API düzeyi 28 ve üstünü kullanma (önerilir)
Arama sesini, kullanılabilir bir Bluetooth cihazına yönlendirmek için kullanın:
requestBluetoothAudio(BluetoothDevice)
:
requestBluetoothAudio(availableBluetoothDevices[0]);
API düzeyi 23 ve üstünü kullanıyorsanız
Etkinleştir
ROUTE_BLUETOOTH
cihazı belirtmeden
setAudioRoute(int)
.
Bu ayar varsayılan olarak Android 9 ve sonraki sürümleri çalıştıran mevcut, etkin Bluetooth cihazlara yönlendirilir.
setAudioRoute(CallAudioState.ROUTE_BLUETOOTH);