我试图将拨出电话重定向至其他电话号码在 Android 设备上。因此,我使用 BroadcastReceiver“监听”NEW_OUTGOING_CALL 意图,在他的 onReceive() 方法上我使用 setResultData() 方法来更改电话号码。
像这样:
public void onReceive(Context arg0, Intent arg1) {
setResultData("351978923221");
}
在模拟器中一切顺利,但在我的真实设备(我相信是 Android 2.1 的蹩脚 ZTE X850)上,如果调用 Intent 源自属于同一应用程序的 Activity,则情况并非如此。出现拨号界面后,话机挂断通话。
对于为什么会发生这种情况有什么想法吗?
Note:我知道我的问题基本上与this one但我还是选择再次询问,以提供有关问题所在的更多详细信息。
清单文件
摘录...
<receiver android:name=".OutgoingCallDetection" android:exported="true">
<intent-filter>
<action android:name="android.intent.action.NEW_OUTGOING_CALL"
android:priority="9999" />
</intent-filter>
</receiver>
</application>
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" />
我切断了拨打的电话并重拨了新的电话。它在设备上完美运行。
这是代码部分:
setResultData(null);
Uri uri = Uri.fromParts("tel", "!Number to be dialed!", null);
Intent newIntent = new Intent(Intent.ACTION_CALL, uri);
newIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(newIntent);
希望这可以帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)