2013-02-06 91 views
7

此啓動應用是我到目前爲止,但沒有任何反應,當我輸入撥號Android。從撥號

public class DialReceiver extends BroadcastReceiver 
{ 
    @Override 
    public void onReceive(Context context, final Intent intent) { 

    if (intent.getAction().equals(android.content.Intent.ACTION_NEW_OUTGOING_CALL)) { 
     String phoneNumber = intent.getExtras().getString(android.content.Intent.EXTRA_PHONE_NUMBER); 

     if(phoneNumber.equals("*#588637#")) { 
      Intent intent1 = new Intent(context , Activity.class); 
      intent1.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
      context.startActivity(intent1); 
     } 

    } 

} 
} 

和androidmanifest

<receiver 
     android:name=".receiver.DialReceiver" 
     android:exported="true" 
     android:process=":background" 
     tools:ignore="ExportedReceiver" > 
     <intent-filter> 
      <action android:name="android.intent.action.NEW_OUTGOING_CALL" /> 
      <category android:name="android.intent.category.DEFAULT" /> 
     </intent-filter> 
    </receiver> 

回答

6

這種結合這些小的變化試試..

String phoneNumber = intent.getExtras.getString("Intent.EXTRA_PHONE_NUMBER"); 

      if(phoneNumber.equals("*#588637#")) { 
      //do your stuff 
      } 

並且不要忘記在您的Manifest.xml文件中添加此行

<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"/> 

而且您可能會發現這些有用的..

+0

android.intent does not exist – pedja

+0

查看更新的解決方案,它適用於我。 – ridoy

+0

它仍然無法正常工作。收件人根本沒有得到廣播 – pedja

2

是接收機獲取廣播呢?如果沒有,可能您忘記了包含PROCESS_OUTGOING_CALLS權限。

+0

它根本沒有得到廣播,我增加了許可,但仍然沒有 – pedja

0

根據ridoy的第二個環節,

http://tikuflower.blogspot.com/2011/12/android.html

應該

String phoneNumber = intent.getStringExtra("android.intent.extra.PHONE_NUMBER"); 

而不是

String phoneNumber = intent.getExtras.getString("Intent.EXTRA_PHONE_NUMBER"); 

這個變化對我來說至少起作用...