我在我的应用中集成了Twilio SDK。在我的应用程序启动至少一次之后,我可以收到来电。使Twilio侦听来自设备启动的来电
但是,如果用户重新启动他的手机,并没有启动我的应用程序,我无法通过电话与他联系。
如何使Twilio SDK收听来自设备启动的来电? (无需启动我的应用程序至少一次)
我在我的应用中集成了Twilio SDK。在我的应用程序启动至少一次之后,我可以收到来电。使Twilio侦听来自设备启动的来电
但是,如果用户重新启动他的手机,并没有启动我的应用程序,我无法通过电话与他联系。
如何使Twilio SDK收听来自设备启动的来电? (无需启动我的应用程序至少一次)
的Twilio客户端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接收意图的广播时,启动Twilio客户端SDK。要启动SDK下面的步骤必须执行:
结帐Twilio的快速入门Tutorial
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 } }
另外,在广播接收器可以启动你的服务,然后处理有关Twilio客户端SDK任何业务逻辑之一。