2

シンプルなホーム画面アプリを開発しています。ホームボタンを押すと、ネイティブと私のホーム画面アプリのどちらかを選択できます。問題は、電話を再起動したときにアプリをデフォルトのホーム画面アプリケーションとして設定すると、ネイティブのホーム画面アプリに入ることができず、アプリがスタックの一番上に立つことです。私のデフォルトのホーム画面アプリの場合、電話を再起動したときにネイティブのホーム画面アプリに入るにはどうすればよいですか? 私は考えています:起動時に、呼び出しの意図を確認できます-ホームカテゴリが含まれている場合は、ネイティブのホーム画面アプリを呼び出します。このようなもの:

 Intent creatingIntent = getIntent();
 if (creatingIntent.hasCategory(Intent.CATEGORY_HOME))
 {
     creatingIntent.setPackage("com.android.launcher");
     creatingIntent.setComponent(new ComponentName
     ("com.android.launcher",
     "com.android.launcher2.Launcher"));
     startActivity(creatingIntent);
     finish();
 }

しかし問題は、ネイティブのホーム画面アプリケーションのコンポーネント名を取得する方法がわからないことです。誰か助けてもらえますか?

4

1 に答える 1

1

ホーム アプリ (=ランチャー) の目的は、ネイティブ ランチャーを置き換えることです。2 つのランチャーの共存を強制するのは奇妙です。しかし、そのようなことに成功した場合、ホームボタンを押すと、ネイティブランチャーも起動します.

あなたの質問に答えるために、ネイティブ ランチャーはターゲット デバイスに依存します。例: samsung は google と同じランチャーを使用しないため、コンポーネント名は異なります。

起動時にアプリを起動するブロードキャストレシーバーを実行しようとしましたか? これにより、アプリをデフォルトのホームアプリとして配置する必要がないため、ホームボタンを押したときに選択を保存できます. ただし、ユーザーがアプリを既定のアプリとして選択した場合、それは解決策ではありません。

多分あなたはここを見ることができますAndroidでデフォルトのスタート画面の代わりにカスタマイズされた画面を使用する方法?

于 2013-01-31T12:14:59.403 に答える