我尝试通过拨打某个号码开始活动。但我无法在HTC g17上收到NEW_OUTGOING_CALL
广播。这是我的代码。
<receiver android:name="com.example.security.receiver.CallPhoneReceiver">
<intent-filter >
<action
android:name="android.intent.action.NEW_OUTGOING_CALL"
android:priority="10000"/>
</intent-filter>
</receiver>
我添加了这样的权限
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"/>
我的接收器功能是
package com.example.security.receiver;
import com.example.security.ui.LostProtectedActivity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;
public class CallPhoneReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
Log.i("annoy",this.getResultData());
String outPhoneNumber = this.getResultData();
if(outPhoneNumber.equals("201314")){
Intent i = new Intent(context,LostProtectedActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
setResultData(null);
}
}
}
答案 0 :(得分:0)
我已经弄明白了。“CallPhoneReciever”中有一个错误。它应该是
context.startActivity(i);
不
context.startActivity(intent);
我发现最好将优先级设置为2147483647(int的最大值),它优先于1000.但是授予优先级为2147483647,有些大公司提出了一些应用程序,他们会注册{电话启动时动态{1}},这些应用程序将比静态注册的应用程序更早地接收广播。