[英]Make Twilio listen for incoming call from device start up
我在我的应用程序中集成了Twilio SDK。 我的应用程序启动至少一次后,我可以收到来电。
但是如果用户重新启动手机并且没有启动我的应用程序,我就无法通过电话与他联系。
如何让Twilio SDK收听来自设备启动的来电? (无需至少启动一次我的应用程序)
Twilio Client SDK不提供持久性服务。
此外,Android SDK不为用户应用程序提供持久服务的可靠机制。 系统应用程序可以保留服务。
但是,可以通过创建BroadcastReceiver并将其注册为接收ACTION_BOOT_COMPLETED
来完成此用例。 然后,BroadcastReceiver将处理使客户端可用于接收呼叫的逻辑。
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<receiver
android:name="com.example.MyBroadcastReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
创建BroadcastReceiver以在接收Intent广播时启动Twilio Client SDK。 要启动SDK,必须执行以下步骤:
Checkout Twilio的快速入门教程
com.example public class MyBroadcastReceiver extends BroadcastReceiver implements DeviceListener { private Device clientDevice; public void onReceive(final Context context, Intent intent) { // You'll need a mechanism to retrieve this time sensitive token. final String capabilityToken = "YOUR_JWT_TOKEN"; // Initialize the Twilio Client SDK Twilio.initialize(context.getApplicationContext(), new Twilio.InitListener() { @Override public void onInitialized() { // Create a Device clientDevice = Twilio.createDevice(capabilityToken, MyBroadcastReceiver.this); // Providing a PendingIntent to the Device Intent intent = new Intent(context.getApplicationContext(), YourApplicationActivity.class); PendingIntent pendingIntent = PendingIntent.getActivity(context.getApplicationContext(), 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); clientDevice.setIncomingIntent(pendingIntent); } @Override public void onError(Exception e) { Log.e("MyBroadcastReceiver", e.toString()); } }); // Implements DeviceListener methods } }
或者,BroadcastReceiver可以启动您的一个服务,然后处理与Twilio Client SDK相关的任何业务逻辑。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.