2013-11-02 49 views
1

最近我在學習android程序。我試圖通過撥打某個號碼來開始一個活動。但是我無法收到在htc g17上播放的NEW_OUTGOING_CALL.Here是我的代碼。不能接收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

它應該工作,但嘗試將'android:priority'更改爲0也許。 – Kristopher

+0

可能的重複http://stackoverflow.com/q/6696652/1321873 – Rajesh

+0

我見過這個問題,但它沒有解決我的問題。我已經在接收器代碼之前放置了許可。:( – user2940590

回答

0

我已經想通了yet.There是在「CallPhoneReciever」錯誤它應該是

context.startActivity(i);

不是

context.startActivity(intent);

我覺得最好是將優先級設置爲2147483647(int的最大值),它優於1000.但是,優先級爲2147483647,有些大公司提出了一些應用程序,他們將註冊在電話啓動時動態地廣播接收器,並且這些應用程序將比靜態註冊的應用程序早收到廣播。