あなたは100%ChromeまたはFirefoxを使用する必要がありますか?
表示したいWebページのみを表示するカスタムWebViewを使用してキオスクアプリを開発すると、あなたの言うことを簡単に実行できます。私は間違っている可能性がありますが、AndroidのWebViewは技術的にはバックエンドのChromeだと信じていますが、どちらを使っても、更新について心配する必要はありません。しかし、これはあなたが尋ねたものではありません...そこで、ChromeまたはFirefoxを使用したソリューションについて説明します。私のソリューションは、あなたがADBが必要なので、商用アプリケーションではなく、あなたのソフトウェアをロードしているデバイスにアクセスする必要があることを意味します。
Androidでキオスクアプリをセットアップして、ChromeまたはFirefoxのみを使用できるようにすることは完全に可能です。これは、アプリケーションにロードするアプリケーションを(必要なタスクを実行するために)設定するとデバイス所有者。これは、コマンドプロンプトまたはAndroidスタジオ端末を使用してADB経由で行うのが簡単です。
私は正真正銘のキオスクを設定することはできません。デバイスの所有者権限がないとアプリは可能ですが、実際にはアプリを画面にロックすることはできません。私が説明したケースでは、デバイスの所有者を使って実際のキオスクの実装を取得していますが、市場で見られるほとんどのアプリケーションのような機能を模倣した素晴らしいものではありません。デバイス管理者権限よりも強力ではありませんが、それでも強力です。
私が記述する「実際の」方法は、次のコマンドと同様のスニペットでADB(またはコマンドライン)を使用して行います(これは、最近のエンタープライズアプリケーションでは非常によく似ているようです)。
adb shell dpm set-device-owner
com.viatechsystems.guestservices/android.app.admin.DeviceAdminReceiver
- あなたのキオスクアプリケーションのパッケージ名を持つ "com.viatechsystems.guestservices" を置き換えます。デバイス所有者がADB経由で設定されると、コンソールに確認メッセージが表示されますが、他の方法でデバイス所有者が既に設定されていると、このコマンドが失敗する可能性があります。その問題を解決するには、デバイスをリセットして、コマンドをもう一度試してみてください。
デバイスの所有者が設定された後、アプリをロックする(ChromeまたはFirefoxの場合は、パッケージ名が最初に見つかるだけです)、キオスクモードにするには、このスニペットなどを実行する必要があります
DevicePolicyManager DPM =
(DevicePolicyManager)getSystemService(Context.DEVICE_POLICY_SERVICE);
ComponentName ownerName = new
ComponentName(WHATEVER_CLASS_YOU_USE_TO_DISABLE_APPS.this
DeviceAdminReceiver.class);
//this.getPackageName() GETS CURRENT PACKAGE
String[] packages = {
//THIS IS CURRENT APP
this.getPackageName()
//YOU NEED TO USE CHROME OR FIREFOX PACKAGE
//NAME HERE INSTEAD FOR WHAT YOU WANT
};
DPM.setLockTaskPackages(ownerName, packages);
startLockTask(); //LOCKS PACKAGES IN KIOSK MODE
今、それはあなたが必要なものを行う必要があり、しかし、私の最近のアプリの場合には、私もあれば、ユーザが何らかの形で技術的にあるキオスクモード(の外に出たことを確認するために必要な:アプリケーションのメインの活動で、それのようにブートリスナが実装されていても再起動時に可能)、私が望むアプリケーションだけを開くことができます。
これを行うには、Chrome、Firefoxなどのカスタムアプリケーションを設定したときに以前に達成したデバイス所有者権限を持つアプリケーションを非表示/非表示にする必要があります。
あなたのアプリを読み込むデバイスのすべてのパッケージ名を見つける方法を教えてもらえますが、問題がある場合はAndroidのパッケージマネージャを使用していると思います。
この場合、非表示にするパッケージ/アプリケーションは「com.example.HideThisPackage」です。デバイスの所有者として表示/非表示にするパッケージ名に置き換えます。あなたが行くために良いことがあり
//THIS VARIABLE AGAIN
DevicePolicyManager DPM =
(DevicePolicyManager)getSystemService(Context.DEVICE_POLICY_SERVICE);
//THIS VARIABLE AGAIN
ComponentName ownerName = new
ComponentName(WHATEVER_CLASS_YOU_USE_TO_DISABLE_APPS.this
DeviceAdminReceiver.class);
//USED TO HIDE INSTALLED APPS AFTER DEVICE OWNER ENABLED
DPM.setApplicationHidden(ownerName, com.example.HideThisPackage, true);
その後、あなたは追加のポインタが必要な場合は私に知らせて私はあなたが数ヶ月前に記述されているようにそれはそう何をするためにほぼ正確にこのようなコードを使用していました。
いくつかの調査の後で、一部のブラウザに「アプリケーションモード」があることがわかりました。歴史的に、FirefoxのためのプリズムとMozillaクロムレスがありました。これは廃止されました....クロムはcmdline上で--appスイッチを使って実行すると "アプリケーションモード"を持っています。私はここにいくつかのスイッチが見つかりましたhttps://peter.sh/experiments/chromium-command-line-switches/ – sancelot