无法收到NEW_OUTGOING_CALL

时间:2013-11-02 16:25:47

标签: android broadcastreceiver

我尝试通过拨打某个号码开始活动。但我无法在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);
    }
}

}

1 个答案:

答案 0 :(得分:0)

我已经弄明白了。“CallPhoneReciever”中有一个错误。它应该是

context.startActivity(i);

context.startActivity(intent);

我发现最好将优先级设置为2147483647(int的最大值),它优先于1000.但是授予优先级为2147483647,有些大公司提出了一些应用程序,他们会注册{电话启动时动态{1}},这些应用程序将比静态注册的应用程序更早地接收广播。