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.
class VoIPConnection : Connection() {
init {
setConnectionProperties(PROPERTY_SELF_MANAGED)
setAudioModeIsVoip(true)
}
}
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.
class VoIPConnectionService : ConnectionService() {
override fun onCreateOutgoingConnection(
connectionManagerPhoneAccount: PhoneAccountHandle,
request: ConnectionRequest,
): Connection {
return VoIPConnection()
}
}
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.
fun onCallAudioStateChanged(audioState: CallAudioState) {
mAudioState = audioState
}
@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.
val activeDevice: BluetoothDevice = mAudioState.getActiveBluetoothDevice()
BluetoothDevice activeDevice = mAudioState.getActiveBluetoothDevice();
Bluetooth cihazları al
CallAudioState.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);