5

「キオスクモードに入る」ことを試みているアプリケーションがありますが、それを 1 つのアクティビティでのみ発生させたいと考えています。いくつかのコントロールをいじくり回した後、思いついたのはIntent.createChooser().

私がやろうとしているのは、アクティビティが呼び出されると、ユーザーにそれをデフォルトのホームアプリとして設定するように促すonCreate()トリガーです。Intent.createChooser()このシナリオでは、キオスク アクティビティに直接戻るように起動アクティビティをプログラムしているため、ホーム ボタンを「無効」にします。

パスコードを介してキオスク アクティビティが終了したら、createChooser()もう一度呼び出して、ユーザーが自分のアプリをデフォルトのホーム アプリケーションとして「設定解除」できるようにし、通常どおりホーム ボタンを使用して続行できるようにします。

問題は、 を呼び出したときにcreateChooser()、[既定のアプリとして設定] チェックボックスが表示されないことです。どうすれば表示されますか?

これは、呼び出すための私のコードですcreateChooser():

Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.addCategory(Intent.CATEGORY_DEFAULT);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

startActivity(Intent.createChooser(intent, "Set as default to enable Kiosk Mode"));

を使用する必要があるという投稿を見たことがありますが、次のstartActivityForResult()ものに置き換えてみました。startActivity()

startActivityForResult(intent, 1);

しかし、これは、選択画面がポップアップすることなく、デフォルトのアプリケーションをすぐに呼び出しただけです。

4

1 に答える 1

4

試しましたか

getPackageManager().clearPackagePreferredActivities(getPackageName());

デフォルトのランチャー/ホーム画面の交換をリセットする方法によると? これにより、優先ランチャーがリセットされます。ホームボタンにも対応しているのかもしれません。

または、次の内容をご覧になりましたか: Clearing and setting the default home application ?

于 2013-07-09T07:37:26.100 に答える