いくつかの異なるインテントを起動するキーガード appwidget があります。/system アプリ (mms、設定など) を起動できるようです。/data アプリではありません (たとえば chrome )
次の PendingIntentTemplate が定義されています。
Intent startApplicationIntent = new Intent();
PendingIntent pendingIntent = PendingIntent.getActivity(mContext, 0, startApplicationIntent, 0);
mainLayout.setPendingIntentTemplate(R.id.stackview, pendingIntent);
私の RemoteViewsFactory には、次の FillInIntent があります。
Intent i = pm.getLaunchIntentForPackage(pkgName);
i.addCategory(Intent.CATEGORY_LAUNCHER);
i.setAction(Intent.ACTION_MAIN);
stackviewRemoteView.setOnClickFillInIntent(R.id.stackview_image, i);
エラーはありません。インテントはキーガードのロックを解除するだけです。また、 toString() メソッドが次のことを示しているため、これは間違いなく null ではありません。
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 }
システム以外のアプリに対して何か特別なことをする必要がありますか? getLaunchIntentForPackage は、アプリをホーム画面から選択した場合と同じ方法で起動するために必要なすべてのものを提供してくれると思いました。