当用户从手机的联系人列表中选择一个电话号码(他希望通话)时,我正试图让“后台服务”得到“通知”。我的目标是阻止系统发出呼叫并向用户显示选择对话框,然后从那里开始......需要帮助。
答案 0 :(得分:2)
我找到了一种做我昨天要求的方法,所以我在这里分享给任何有兴趣的人。诀窍是,抓住BroadcastReceiver中的NEW_OUTGOING_CALL广播意图,而不是我所想的任何与选择联系人有关的事件。
所以......按照步骤进行操作。
在AndroidManifest.xml文件的application元素中添加一个receiver元素... 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" />
类中的onReceive方法,它扩展了BroadcastReceiver(本例中为OutgoingCallDetection)。请注意,setResultData(null)是阻止系统自身进行调用的原因。
public void onReceive(Context arg0, Intent arg1) {
setResultData(null);
// Start an activity and then show a dialog, or something...
}
在这里,并根据需要工作。