Autore Topic: "intercettare" l'arrivo di una email  (Letto 1488 volte)

Offline aw4y

  • Utente junior
  • **
  • Post: 59
  • Respect: +6
    • Mostra profilo
  • Dispositivo Android:
    samsung i5500
  • Sistema operativo:
    osx/linux
"intercettare" l'arrivo di una email
« il: 16 Gennaio 2011, 20:27:37 CET »
0
Ciao,
mi servirebbe avere la notifica di arrivo email, un pò come si fa con gli sms con
 <intent-filter><action android:name="android.provider.Telephony.SMS_RECEIVED"/> </intent-filter>
ma non riesco a trovare nulla.

Spulciando qualche app che ci riesce, ho visto che ha i seguenti permessi:

com.google.android.gm.permission.READ_GMAIL
com.google.android.gm.permission.WRITE_GMAIL
com.google.android.providers.gmail.permission.READ_GMAIL
com.google.android.providers.gmail.permission.WRITE_GMAIL

ma che intent-filter utilizzare?
saluti
aw4y

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +507
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:"intercettare" l'arrivo di una email
« Risposta #1 il: 16 Gennaio 2011, 22:42:16 CET »
0
Non mi pare che quando ricevi una mail viene lanciato un intent.
Puoi comunque verificarlo tu stesso da logcat provando a dare un occhio a cosa succede quando ne ricevi una.

Offline aw4y

  • Utente junior
  • **
  • Post: 59
  • Respect: +6
    • Mostra profilo
  • Dispositivo Android:
    samsung i5500
  • Sistema operativo:
    osx/linux
Re:"intercettare" l'arrivo di una email
« Risposta #2 il: 16 Gennaio 2011, 23:14:32 CET »
0
Ottima idea:


01-16 23:13:06.740: DEBUG/Gmail(11033): sending notification. Adjusted values are label=3, oldCount=2, newCount=2, unseenCount=2, getAttention=true
01-16 23:13:06.740: INFO/Gmail(11033): Sending notification intent: Intent { act=android.intent.action.PROVIDER_CHANGED dat=content://gmail-ls/unread/^i typ=gmail-ls (has extras) }
01-16 23:13:06.750: DEBUG/Gmail(17013): New email:noneofthem@gmail.com (2) mapSize:1 getAttention:true


Ma come posso intercettare questo intent?

Offline aw4y

  • Utente junior
  • **
  • Post: 59
  • Respect: +6
    • Mostra profilo
  • Dispositivo Android:
    samsung i5500
  • Sistema operativo:
    osx/linux
Re:"intercettare" l'arrivo di una email
« Risposta #3 il: 16 Gennaio 2011, 23:42:58 CET »
0
ho provato, senza risultati, con questo:

 registerReceiver(mGmailNotInfoReceiver, new IntentFilter
(Intent.ACTION_PROVIDER_CHANGED));

 private BroadcastReceiver mGmailNotInfoReceiver = new
    BroadcastReceiver() {
          @Override
                public void onReceive(Context context, Intent intent) {

                    Log.i("GMAILNOT", intent.toString());

                     String action = intent.getAction();
                     if (Intent.ACTION_PROVIDER_CHANGED.equals(action)) {
                         Uri dataURI= intent.getData();
                         String dataURIPath=dataURI.getPath();
                         Log.i("GMAILNOT", dataURIPath);
                     }
                }
           };   

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +507
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:"intercettare" l'arrivo di una email
« Risposta #4 il: 17 Gennaio 2011, 08:37:24 CET »
0
Magari è una questione di permessi, per leggere alcuni content provider devi richiedere dei permessi espliciti ma purtroppo di più non so dirti perché non mi sono mai cimentato in questo...