2016-03-25 63 views
1

多くのAndroid搭載端末用のキオスクランチャーを作成する必要があります。 ChromeやFirefoxを起動し、特定のウェブページを全画面で表示することになっています。そのページは既にHTML5 requestFullScreen() APIにコールされていますが、その呼び出しはユーザー生成イベントからのものではないため、gets declined by a browser for security reasonsというように動作しません。ChromeまたはFirefoxのキオスクモード

私はいくつかのsearchingを行なったし、私は次の質問が見つかりました:それらのいくつかはある、これらの答えのいずれもが、既存のアプリケーションやブラウザを指して終わる

を私が達成しようとしていることを正確にやっている。これは、私はすでにこのことを行うためにアプリを使用しているので、過剰な感じです。そして、hereのような特別なブラウザを使うことはできません。なぜなら、FirefoxやChromeのような主要なブラウザは更新やサポートされている機能の点で信頼性が高いからです。

しかし、同時に、これらのアプリが存在するということは、私がする必要があることは、まあ、実行可能であることを意味します。 Kiosk Browser Lockdownから:

[Proの機能]

フルスクリーンモード/非表示のツールバー

私の質問はこれです:彼らはこれを実現するために使用するAndroidのAPIは何ですか?この時点で私が見逃していることはありますか?私が探しているドキュメントのページ、ガイド、または記事は何ですか?

ありがとう

答えて

0

私は、LinuxシステムまたはWindows OSのいずれかで動作する商用アプリケーションで同様の問題があります。このアプリケーションはブラウザで実行されます。 これまではカスタマイズしたブラウザウィンドウを開いていました。メインウィンドウを閉じます。 : *隠れたメニューバー。 *非表示のボタンバー。 *閉じる/下のウィンドウボタンを維持する

ウィンドウボタンを隠すので、フルスクリーンモードは使用できません。

今日、ますますブラウザベースのアプリケーションが登場します(angularjsなどのアプリケーションが登場します)。

私はAtomアプリケーションでクロムを使ってこれを行うことができます。

これは、アプリケーション設定でウェブブラウザを埋めなければならないということですか? いくつかのブラウザ(例えばクロム)に固執してください、私のアプリケーションは多くのものと互換性があります。

+0

いくつかの調査の後で、一部のブラウザに「アプリケーションモード」があることがわかりました。歴史的に、FirefoxのためのプリズムとMozillaクロムレスがありました。これは廃止されました....クロムはcmdline上で--appスイッチを使って実行すると "アプリケーションモード"を持っています。私はここにいくつかのスイッチが見つかりましたhttps://peter.sh/experiments/chromium-command-line-switches/ – sancelot

0

あなたは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); 

その後、あなたは追加のポインタが必要な場合は私に知らせて私はあなたが数ヶ月前に記述されているようにそれはそう何をするためにほぼ正確にこのようなコードを使用していました。

関連する問題