इस गाइड में बताया गया है कि Telecom API और VoIP कॉल. पढ़ें कॉल के लिए इस्तेमाल होने वाला ऐप्लिकेशन बनाने के बारे में गाइड जारी रखने से पहले.
ConnectionService
का इस्तेमाल करके
और Connection
क्लास के साथ-साथ, इन्हें ऐक्सेस करें
और ब्लूटूथ डिवाइसों की सूची और ऑडियो की स्थिति, और वे
किसी चुने गए ब्लूटूथ डिवाइस में ऑडियो.
VoIP कनेक्शन और कनेक्शन सेवा
ऐसी VoIPConnection
क्लास बनाएं जो इससे आगे की हो
Connection
. यह क्लास मौजूदा कॉल की स्थिति को कंट्रोल करती है. जिस तरह
कॉल के लिए इस्तेमाल होने वाला ऐप्लिकेशन बनाने के बारे में गाइड
इसे खुद मैनेज किया जाता है. साथ ही, VoIP के लिए ऑडियो मोड सेट किया जा सकता है
का इस्तेमाल करें.
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); } }
इसके बाद, इसमें इस क्लास का इंस्टेंस दिखाएं
ConnectionService
, जब
इनकमिंग या आउटगोइंग कॉल होता है.
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(); } }
पक्का करें कि मेनिफ़ेस्ट में सही तरीके से VoIPConnectionService
क्लास को पॉइंट किया गया हो.
<service android:name=".voip.TelegramConnectionService" android:permission="android.permission.BIND_TELECOM_CONNECTION_SERVICE">
<intent-filter>
<action android:name="android.telecom.ConnectionService"/>
</intent-filter>
</service>
इन कस्टम Connection
और
ConnectionService
क्लास, आप
यह कंट्रोल कर सकता है कि आपको
कॉल.
ऑडियो की मौजूदा स्थिति जानें
ऑडियो की मौजूदा स्थिति जानने के लिए, इस पर कॉल करें
getCallAudioState()
.
getCallAudioState()
यदि डिवाइस ब्लूटूथ, इयरपीस, वायर्ड, या
स्पीकर.
mAudioState = connection.getCallAudioState()
ऑन स्टेट बदला गया
ओवरराइड करके CallAudioState में हुए बदलावों की सदस्यता लें
onCallAudioStateChanged()
.
यह स्थिति में होने वाले किसी भी बदलाव के बारे में आपको सूचना देता है.
Kotlin
fun onCallAudioStateChanged(audioState: CallAudioState) { mAudioState = audioState }
Java
@Override public void onCallAudioStateChanged(CallAudioState audioState) { mAudioState = audioState; }
मौजूदा डिवाइस को इंस्टॉल करें
इसका इस्तेमाल करके मौजूदा चालू डिवाइस पाएं
CallAudioState.getActiveBluetoothDevice()
.
यह फ़ंक्शन, चालू ब्लूटूथ डिवाइस की जानकारी दिखाता है.
Kotlin
val activeDevice: BluetoothDevice = mAudioState.getActiveBluetoothDevice()
Java
BluetoothDevice activeDevice = mAudioState.getActiveBluetoothDevice();
ब्लूटूथ डिवाइस डाउनलोड करें
उन ब्लूटूथ डिवाइसों की सूची पाएं जो कॉल ऑडियो रूटिंग के लिए उपलब्ध हैं
CallAudioState.getSupportedBluetoothDevices()
.
Kotlin
val availableBluetoothDevices: Collection= mAudioState.getSupportedBluetoothDevices()
Java
CollectionavailableBluetoothDevices = mAudioState.getSupportedBluetoothDevices();
कॉल का ऑडियो रूट करें
एपीआई लेवल 28 और उसके बाद वाले वर्शन का इस्तेमाल करना (सुझाया गया)
इसका इस्तेमाल करके कॉल के ऑडियो को किसी उपलब्ध ब्लूटूथ डिवाइस पर रूट करें
requestBluetoothAudio(BluetoothDevice)
:
requestBluetoothAudio(availableBluetoothDevices[0]);
एपीआई लेवल 23 और उसके बाद के लेवल का इस्तेमाल किया जा रहा है
सक्षम करें
ROUTE_BLUETOOTH
डिवाइस को निर्दिष्ट किए बिना
setAudioRoute(int)
.
यह डिफ़ॉल्ट रूप से, Android 9 और इसके बाद के वर्शन पर काम करने वाले मौजूदा ब्लूटूथ डिवाइसों पर रूट हो जाता है.
setAudioRoute(CallAudioState.ROUTE_BLUETOOTH);