2016-09-29 2 views
0

Ich versuche zu verstehen, die Absicht, die durch das Google Mail-Widget zum Öffnen von Nachrichten in der ursprünglichen Gmail-App sendet. Wenn ich auf eine E-Mail in das Widget klicken, werde ich die folgende Logcat Ausgabe:Anzeige Absicht Extras in Logcat

09-29 14:42:51.312: I/ActivityManager(1550): START u0 
{act=android.intent.action.VIEW 
dat=content://com.google.android.gm.email.provider/uimessage/87?threadOp=true&appVersion=58454703&folderUri=content://com.google.android.gm.email.provider/uifolder/1 typ=application/gm-email-ls flg=0x1000c000 pkg=com.google.android.gm cmp=com.google.android.gm/.ui.MailActivityGmail (has extras)} from uid 10066 on display 0 

Aber ich habe nicht bekommen, wie die Extras anzuzeigen, die senden bekam. Wenn ich versuche, die Aktion nachzuahmen, sehe ich nur den Gmail-Posteingang. Ich bin mit diesem Code:

Intent defineIntent =new Intent(Intent.ACTION_VIEW, Uri.parse("content://com.google.android.gm.email.provider/uimessage/86?threadOp=true&appVersion=58454703&folderUri=content://com.google.android.gm.email.provider/uifolder/1")); 
Bundle extra = new Bundle(); 
extra.putString("exchange_username", "XXX"); 
extra.putString("email_address", "XXXX"); 
defineIntent.setType("application/gm-email-ls"); 
defineIntent.setPackage("com.google.android.gm"); 
defineIntent.setClassName("com.google.android.gm", "com.google.android.gm.ui.MailActivityGmail"); 


defineIntent.putExtras(extra); 

defineIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
context.startActivity(defineIntent); 

Nach der Inbox ist die gmail app gezeigt wirft einen Fehler in logcat:

09-29 14: 46: 01,457: W/Gmail (13334): email_address im Bündel ist leer

Aber ich habe die email_adress Schnur in meinem Extrabündel eingestellt.

Antwort

1

Wie vorgeschlagen here, machen Sie die grundlegendste Weitergabe von Daten von einer Aktivität zu einer anderen zuerst, bevor Sie andere Datenobjekte einbeziehen.

Für die nächste Ausgabe:

Aber ich habe nicht, wie die Extras anzuzeigen, wurde gesendet.

Sie können dies überprüfen related post. Sie können die Intent.hasExtra(String name) verwenden, um zu überprüfen, ob ein Extra mit name in der Absicht übergeben wurde. Verwenden Sie auch Intent.getStringExtra(String name) direkt auf die Absicht, die NullPointerException zu behandeln, wenn keine Extras bestanden wurden.

+0

Ja, sicher. Aber nur, wenn die Absicht zu meiner eigenen Anwendung gesendet wurde. Ich kann sehen, dass Intents von anderen Anwendungen gesendet wurden, die im Emulator in meinem Logcat installiert sind, aber die Extras nicht sehen (nur der Hinweis: "Hat Extras"). –

Verwandte Themen