2016-09-29 8 views
0

Gmail Gmail은 위젯이 원래 Gmail 응용 프로그램에서 메시지를 열어 보려는 의도를 파악하려고합니다. 나는 위젯에서 전자 메일을 클릭하면, 나는 다음과 같은 로그 캣 출력을 얻을 것이다 :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받은 편지함 만 보입니다. 이 코드가 사용하고

09-29 14 : 46 : 01.457 :의 Gmail/W (13,334) Gmail 앱 도시

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

수신함 후하는 로그 캣에 에러가 발생 : 번들의 email_address가 비어 있습니다.

그러나 여분의 번들에 email_adress 문자열을 설정했습니다.

답변

1

제안 된대로 here은 다른 데이터 개체를 포함하기 전에 한 활동에서 다른 활동으로 가장 기본적인 데이터 전달을 먼저 수행하십시오. 다음 호에 대한

:

하지만 퇴장했기 엑스트라를 표시하는 방법을하지 않았다.

확인할 수있는 related post입니다. 을 사용하여 name의 추가 항목이 의도로 전달되었는지 확인할 수 있습니다. 또한 여분의 항목이없는 경우 을 처리하기 위해 Intent.getStringExtra(String name)을 직접 사용하십시오.

+0

예, 물론입니다. 그러나 의도가 내 자신의 응용 프로그램으로 전송 된 경우에만. 인 텐트가 Logcat의 에뮬레이터에 설치된 다른 응용 프로그램에 의해 전송 된 것을 볼 수 있지만, 추가 정보는 표시되지 않습니다 ("추가 기능이 있음"). –