我正在尝试从广播接收器启动一个 Activity ,该接收器监听 5556 的拨出电话。问题是,该 Activity 未启动,但正在调用拨号内置 Activity ,我已经更改了 Intent 的优先级到 100 但无济于事。如何让 Activity 在拨号时启动而不是内置调用 Activity ? 这是代码:
package com.messageHider;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.widget.Toast;
public class launchReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String number=intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER);
String compare_num="5556";
if(number.equals(compare_num))
{
Intent myintent=new Intent(context,messageHider.class);
myintent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(myintent);
abortBroadcast();
}
}
}
list 文件:
<receiver android:name=".launchReceiver">
<intent-filter android:priority="0">
<action android:name="android.intent.action.NEW_OUTGOING_CALL"/>
</intent-filter>
</receiver>
最佳答案
在您的 list 中,您需要一个权限(根据文档):
You must hold the PROCESS_OUTGOING_CALLS permission to receive this Intent.
那就是
"android.permission.PROCESS_OUTGOING_CALLS"
也直接来自文档:
Any BroadcastReceiver receiving this Intent must not abort the broadcast.
这是我获得信息的页面链接:
http://developer.android.com/reference/android/content/Intent.html
关于android - 从收听拨出电话的广播接收器启动 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6402679/