2016-09-29 6 views
0

私は元のGmail-Appのメッセージを開くためにgmail-widgetによって送信されるインテントを理解しようとしています。私はウィジェットにEメールをクリックすると、私は次のLogcat出力が得られます: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 

しかし、私は送ってましたエキストラを表示する方法を取得できませんでした。アクションを模倣しようとすると、Gmailの受信トレイしか表示されません。私はこのコードを使用しています:

9月29日14:46:01.457:受信トレイが示されている

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

後GmailアプリはlogcatでエラーをスローW/Gmailの(13334)。バンドル内のemail_addressが空です

ただし、私は余分なバンドルにemail_adress文字列を設定しました。

答えて

1

hereが示唆しているように、他のデータオブジェクトが関与する前に、あるアクティビティーから別のアクティビティーへの最も基本的なデータの受け渡しを最初に行います。次の問題については

しかし、私が送信されてしまったエキストラを表示する方法を取得できませんでした。

これは、related postで確認できます。 を使用して、nameの余分がインテントに渡されたかどうかを確認できます。また、特別なものが渡されなかった場合はNullPointerExceptionを処理する目的で直接Intent.getStringExtra(String name)を使用してください。

+0

はい、確かです。しかし、インテントが自分のアプリケーションに送信された場合に限ります。インテントはLogcatのエミュレータにインストールされている他のアプリケーションから送信されたが、エクストラは表示されませんでした(ちょっとヒント: "Has Extras")。 –

関連する問題