1

プラットフォーム:JellyBeanを実行しているASUS Nexus 7


キオスクアプリケーションをデフォルトのHOME/LAUNCHERインテントにして作成しました。サービスとメンテナンスのための秘密のコードを介して、ストックのAndroidランチャーにアクセスできるようにする必要があります。

私はあちこちを検索しましたが、良い簡潔な答えを見つけることができません。私が思いついた最善の方法は、インテントチューザー(Intent.createChooser(Intent i, String title))を作成し、ランチャーとストックランチャーのどちらかを選択することです。これは問題ありませんが、実際には回避策です。

私はもう試した:

PackageManager pm = this.getPackageManager();

try {
    Intent i = pm.getLaunchIntentForPackage("com.android.launcher");
    if (i != null)
        this.startActivity(i);
}
catch (ActivityNotFoundException e) { }

そして、私は毎回その意図に対してnullを取得します。それでも、ストックランチャーは私のタブレットに「com.android.launcher」のパッケージを表示します。明らかに、私はここで何か完全に間違っているのです。

4

1 に答える 1

1

ステップ #1: アプリをホーム画面として設定する前に、ランチャーから手動でアプリを実行する必要があることを文書化します。

ステップ #2: 最初の実行でresolveActivity()、デフォルトのホーム画面が何であるかを調べるために使用しResovleInfo、永続的なデータ ストア内の関連情報 (コンポーネント名など) を保持します。

ステップ #3: そのデータを使用して、キオスク アプリにあるバックドアから、必要に応じてデフォルトのホーム画面を表示します。

于 2012-10-20T23:55:43.130 に答える