当用户从电话的联系人列表中选择一个电话号码(他希望拨打电话)时,我试图让Android后台服务被“通知”。我的目标是防止系统发出呼叫并向用户显示选择对话框,然后从那里转到...需要帮助。
最佳答案
我找到了一种方法来处理昨天提出的问题,所以我在这里与有兴趣的人分享。诀窍在于,要在BroadcastReceiver中捕获NEW_OUTGOING_CALL的广播意图,而不是像我在想的那样,没有与选择联系人有关的任何事件。
所以...按照步骤进行。
在AndroidManifest.xml文件的application元素中添加一个接收器元素... android:name属性是将从BroadcastReceiver扩展的类(如下所述)。
<receiver android:name=".OutgoingCallDetection">
<action android:name="android.intent.action.NEW_OUTGOING_CALL"
android:priority="0" />
啊!而且您需要特殊许可...
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" />
扩展BroadcastReceiver的类中的onReceive方法(在此示例中为OutgoingCallDetection)。请注意,setResultData(null)阻止了系统本身进行调用。
public void onReceive(Context arg0, Intent arg1) {
setResultData(null);
// Start an activity and then show a dialog, or something...
}
在这里,并根据需要进行工作。