2013-02-06 13 views
7

Questo è ciò che ho finora, ma non succede nulla quando questa combinazione di ingresso nel dialerAndroid. Lancio app dalla Dialer

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); 
     } 

    } 

} 
} 

e in 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> 

risposta

6

prova con questi piccoli cambiamenti ..

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

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

E non dimenticare di aggiungere questa riga nel file Manifest.xml

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

Inoltre si possono trovare questi utili ..

+0

android.intent non esiste – pedja

+0

Vedere la soluzione aggiornata, funziona bene per me. – ridoy

+0

ancora non funziona. Il ricevitore non viene trasmesso affatto – pedja

2

è il ricevitore di ottenere la trasmissione a tutti? In caso contrario, forse hai dimenticato di includere l'autorizzazione PROCESS_OUTGOING_CALLS.

+0

Non viene trasmesso affatto, ho aggiunto il permesso ma ancora niente – pedja

0

Secondo la 2 ° collegamento di ridoy,

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

Va

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

piuttosto che

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

Che il cambiamento funziona per me almeno ...

Problemi correlati