我正在使用推送通知发送来自接收方的号码。我用来拨打号码的代码是 -
public class ExternalReceiver extends BroadcastReceiver {
public void onReceive(Context context, Intent i) {
if (i != null) {
String phone = extractPhoneNumber(i);
Intent intent = new Intent(Intent.ACTION_CALL);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setData(Uri.parse("tel:" + phone));
context.startActivity(intent);
}
}
}
的AndroidManifest.xml
<receiver android:name=".receivers.ExternalReceiver"
android:permission="android.permission.RECEIVE_BOOT_COMPLETED">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<action android:name="com.google.android.c2dm.intent.REGISTRATION" />
<action android:name="com.google.android.c2dm.intent.REGISTER" />
<category android:name="com.leadsquared.nextgen" />
</intent-filter>
</receiver>
我已在清单中添加了android.permission.CALL_PHONE
权限。
此代码大部分时间都有效,并且当应用收到通知时会发出呼叫。这里的问题是相同的代码有时不拨打电话。在某些设备中,失败的可能性非常高(超过80%)。
有没有人遇到同样的问题或有解决方案?