Androidのホーム画面をアプリケーションで起動したい。主なターゲットは、ユーザーが専用のキーを押したときにすべてのアプリを表示することです。実際には方法は重要ではありません。これを行うアイデア?
HomeActivityを開始するためのコードは次のとおりです
Intent startMain = new Intent(Intent.ACTION_MAIN);
startMain.addCategory(Intent.CATEGORY_HOME);
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(startMain);
一部の回答に対して行ったコメントは、実際にランチャーを起動することを提案しています(これが当てはまる場合は、タイトルを更新することをお勧めします)。これを行うには、ホームアクティビティを開始するためにAnandが提案したのと同じアプローチを使用します。
Intent startMain = new Intent(Intent.ACTION_MAIN);
startMain.addCategory(Intent.CATEGORY_LAUNCHER);
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(startMain);
Androidには「ユーザーにアイコン付きでアプリを表示する画面」はありません。
あなたが考えているのは、いくつかのホーム画面の機能です。これをトリガーする標準化されたIntent
はありません。また、ホーム画面にそのような機能がある必要はありません。
自分で書いても大丈夫です。 サンプルプロジェクトはこちら 起動可能なアクティビティをListView
に表示します。
このようなものを試して、ホーム画面に移動する戻るボタンをクリックしてください/ ...
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
// Display confirmation here, finish() activity.
Intent startMain = new Intent(Intent.ACTION_MAIN);
startMain.addCategory(Intent.CATEGORY_HOME);
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(startMain);
return true;
}
return super.onKeyDown(keyCode, event);
}
パーティーには非常に遅れていると思いますが、同様の懸念がありました。ここでの回答により、ランチャーを選択できる選択メニューが起動します。コードに複数のランチャーがある場合、ここの答え https://stackoverflow.com/a/8666155 が役立つかもしれません。この直接は、Androidのdefaultホーム画面を起動します。
ここでの解決策のどれも私のために働いていません。
以下のコードを使用して動作させました
PackageManager pm = getPackageManager();
Intent i = new Intent("Android.intent.action.MAIN");
i.addCategory("Android.intent.category.HOME");
List<ResolveInfo> lst = pm.queryIntentActivities(i, 0);
if (lst != null) {
for (ResolveInfo resolveInfo : lst) {
try {
Intent home = new Intent("Android.intent.action.MAIN");
home.addCategory("Android.intent.category.HOME");
home.setClassName(resolveInfo.activityInfo.packageName, resolveInfo.activityInfo.name);
startActivity(home);
break;
} catch (Throwable t) {
t.printStackTrace();
}
}
}
それを手に入れました: https://stackoverflow.com/a/16483596/124178
これが誰かを助けることを願っています
あなたがやろうとしていることを完全に理解しているかどうかはわかりません!ただし、アプリケーション内をクリックしてユーザーが別のアプリケーションにアクセスできるようにする場合は、「意図」を確認する必要があります。 EclipseでAPI DEMOサンプルコードを実行し、App-> Intentsを実行します。
これは私にとってはうまくいきます!
Intent startMain = new Intent(Intent.ACTION_MAIN);
startMain.addCategory(Intent.CATEGORY_HOME);
startActivity(startMain);
なぜこれが必要なのか誰かが説明できますか?
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
ところで、これは私が探していたものです
moveTaskToBack(true);
1行で達成しました
moveTaskToBack(true); //activity.moveTaskToBack(true);
ホームボタンのように動作します