2013-03-17 1 views
0

저는 몇 가지 Intent를 시작하는 키 가드 앱 위젯을 보유하고 있습니다. 그것은/시스템 애플 리케이션 (mms, 설정 등)를 시작할 수있는 것 같습니다. 하지만/데이터 애플 리케이션 나는 다음과 같은 PendingIntentTemplate가 정의한PendingIntent가/데이터 앱을 시작하지 않습니다.

(예를 들어 크롬),

Intent i = pm.getLaunchIntentForPackage(pkgName); 
i.addCategory(Intent.CATEGORY_LAUNCHER);    
i.setAction(Intent.ACTION_MAIN); 
stackviewRemoteView.setOnClickFillInIntent(R.id.stackview_image, i); 

에 오류가 없습니다 :

Intent startApplicationIntent = new Intent(); 
PendingIntent pendingIntent = PendingIntent.getActivity(mContext, 0, startApplicationIntent, 0); 
mainLayout.setPendingIntentTemplate(R.id.stackview, pendingIntent); 

을 내 RemoteViewsFactory, 나는 다음과 같은 FillInIntent이 의도는 단지 열쇠 고리를 여는 것입니다. 나는 비 시스템 응용을 위해해야 ​​할 뭔가 특별한

Intent { act=android.intent.action.MAIN cat=  
[android.intent.category.LAUNCHER] flg=0x10000000  
pkg=com.android.chrome  
cmp=com.android.chrome/com.google.android.apps.chrome.Main } 

있습니까 : 또한 확실히 있으며, toString로 null가 아닌() 메서드는 다음을 보여줍니다? getLaunchIntentForPackage를 사용하면 홈 스크린에서 선택한 앱을 실행하는 것과 같은 방식으로 앱을 실행하는 데 필요한 모든 것을 제공 할 수 있다고 생각했습니다.

답변

0

내가이 일을하는 방식이 몇 가지 가정을하고있는 것으로 보입니다.

PendingIntent.getActivity는 CATEGORY_DEFAULT를 지정해야하는 startActivity()를 호출합니다.

다음 코드는 아마도 '더 정확한'와 CATEGORY_DEFAULT 찾을 수없는 오류를 던질 가능성이 적습니다 :

Intent i = new Intent(); 
i.setPackage(pkgName); 
i.addCategory(Intent.CATEGORY_DEFAULT); 
관련 문제