Autore Topic: Lanciare un activity da broadcast receiver  (Letto 959 volte)

Offline FabioZonta

  • Nuovo arrivato
  • *
  • Post: 13
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    emulatore pc
  • Sistema operativo:
    mac os
Lanciare un activity da broadcast receiver
« il: 26 Marzo 2013, 09:23:07 CET »
0
Ciao a tutti ho un problema che non riesco a risolvere. Ho un broadcastreceiver che mi cattura il numero di telefono di chi chiama, una volta catturato il numero dovrebbe lanciarmi un activity che fa alcune operazioni, ma purtroppo non la lancia. Inserisco del broadcastreceiver.
Codice: [Seleziona]
public class MyPhoneReceiver extends BroadcastReceiver {

        @Override
        public void onReceive(Context context, Intent intent) {
                Bundle extras = intent.getExtras();
                if (extras != null) {
                        String state = extras.getString(TelephonyManager.EXTRA_STATE);
                        Log.w("MY_DEBUG_TAG", state);
                        if (state.equals(TelephonyManager.EXTRA_STATE_RINGING)) {
                                String phoneNumber = extras.getString(TelephonyManager.EXTRA_INCOMING_NUMBER);

                                Toast.makeText(context, "CALL : "+phoneNumber,Toast.LENGTH_LONG).show();

                                Log.i("Intent","INTENT");
                                if(phoneNumber.equals("XXXXXXXXXXX")){
                                        Intent myIntent = new Intent(context, Gps_Activity.class);
                                        myIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                                        context.startActivity(myIntent);

                                }
                                Log.i("numero",phoneNumber);
                                Log.w("MY_DEBUG_TAG", phoneNumber);

                        }
                }
        }
Non ho errori pero non mi viene mai chiamata Gps_Activity ?? Qualcune perfavore riesce a darmi un consiglio?? GRAZIE

Offline DarnellNajanReed

  • Utente normale
  • ***
  • Post: 359
  • Respect: +49
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    LG Optimus One, Acer Iconia A500/501, Asus Transformer Prime, Galaxy ACE, Galaxy S Plus, Galaxy S Advance P, Galaxy Tab 2 7.0, Google Nexus 7
  • Play Store ID:
    Luigi Notaro
  • Sistema operativo:
    OS X 10.8.3
Re:Lanciare un activity da broadcast receiver
« Risposta #1 il: 26 Marzo 2013, 17:23:23 CET »
0
Se non entra mai nell'if, significa che l'identità:
Citazione
phoneNumber.equals("XXXXXXXXXXX")
non è vera. Prova a farti stampare il numero di telefono che recuperi...

Offline FabioZonta

  • Nuovo arrivato
  • *
  • Post: 13
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    emulatore pc
  • Sistema operativo:
    mac os
Re:Lanciare un activity da broadcast receiver
« Risposta #2 il: 26 Marzo 2013, 19:57:08 CET »
0
Il numero lo vede corretto. Non è che non posso lanciare l'activity se la chiamata è presa dal sistema??

Offline DarnellNajanReed

  • Utente normale
  • ***
  • Post: 359
  • Respect: +49
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    LG Optimus One, Acer Iconia A500/501, Asus Transformer Prime, Galaxy ACE, Galaxy S Plus, Galaxy S Advance P, Galaxy Tab 2 7.0, Google Nexus 7
  • Play Store ID:
    Luigi Notaro
  • Sistema operativo:
    OS X 10.8.3
Re:Lanciare un activity da broadcast receiver
« Risposta #3 il: 26 Marzo 2013, 20:00:53 CET »
0
Ma se la "chiamata la consuma il sistema" non dovresti proprio beccarti l'intent.

Sei sicuro che entri nell'if?
Codice (Java): [Seleziona]
if(phoneNumber.equals("XXXXXXXXXXX"))
{...}

EDIT: hai provato a seguire il flusso in modalità debug? O almeno a mettere un log in quel'if.
« Ultima modifica: 26 Marzo 2013, 20:02:43 CET da DarnellNajanReed »

Offline FabioZonta

  • Nuovo arrivato
  • *
  • Post: 13
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    emulatore pc
  • Sistema operativo:
    mac os
Re:Lanciare un activity da broadcast receiver
« Risposta #4 il: 28 Marzo 2013, 08:52:40 CET »
0
Grazie a tutti per l'aiuto ho risolto.... Non avevo messo nel file manifest la chiamata alla seconda activity  :-P.
Codice: [Seleziona]
<activity android:name=".Gps_Activity"                 
android:label="@string/app_name"/>