米国で人気の自動車保険会社 アプリあり 「デジタル自動車保険」の書類を表示します。コマーシャルでは、これらのアプリが開かれ、ユーザーはロック解除された電話を警察官に渡します。誰かが無制限に電話にアクセスできるこれらの状況で何が起こるかを想像することは不合理ではありません。
理想的には、このようなアプリが広く使用されている場合、パスワードが入力されるまで別のアプリ(メール、連絡先、SMSなど)に切り替えられないようにしたいと思います。
これが役立つ他のシナリオは、IDカード、人気のあるアプリ(ゲーム)のモーダルバージョン、子供が使用するアプリを制御したい親、見本市でのデモ電話などです。
質問
携帯電話(iOS、Android、またはWindows)は、「フルスクリーン」制御を取り、パスワードが入力されるまで終了しないアプリをサポートできますか?
そのような解決策が可能な場合、それは安全ですか? (ローカルデータはまだ暗号化されていますか?)
(AndroidとBlackberry 10は同じようなアプリを実行できるため、同じであると思います)
SamsungのデバイスとAndroidについては、これについての良い例と議論があることを知っているので、そこから始めて、他のすべてのものに行きたいところに行くかどうかを確認することをお勧めします。
http://developer.samsung.com/Android/technical-docs/Neat-tricks-when-implementing-a-kiosk-app
タイトルバーとステータスバーを削除する...アプリのタイトルバーとシステムステータスバーを削除すると、アプリ全画面。 一部のデバイス(Galaxy NexusやGalaxy Tabタブレットなど)には、他のデバイスのハードウェアボタンで表されるボタンのある別のバーがあることに注意してください。そのバーはどのアプリでもカバーできません。これらのバーを削除するには、アクティビティの
setContentView
メソッドを呼び出す前に以下のコードを使用します。 (タイトルバーを削除するために)拡張機能を要求し、ウィンドウに適切なフラグを設定します(ステータスバーをカバーするため)。
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
戻るボタンを使用してアプリを終了しないようにするキオスクアプリを閉じる必要がないため、戻るボタンを押して別のアクションを割り当てることができます。たとえば、ユーザーがアプリを終了しようとしたときにホームページに移動したい場合があります。そのためには、戻るボタンが押されるたびに呼び出されるActivityメソッドの1つをオーバーライドします。 [またはこれをnullに設定するか、更新して同じディスプレイに保持します]
@Override
public void onBackPressed() {
mWebView.loadUrl(mHomepageUrl);
}
ホームボタンを無効にする一般に、ホームボタンを無効にすることはお勧めできませんが、キオスクアプリを開発するときに非常に役立ちます。 Android 4.0なので、効果的な方法はないので、アプリをホーム画面として設定するなど、別の解決策が必要になる場合があります。これについては後で説明します。ただし、古いOSバージョンウィンドウのタイプをキーガードに切り替えると、ホームボタンを押すことができなくなります。
@Override
public void onAttachedToWindow() {
getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
super.onAttachedToWindow();
}
ロック画面を覆うようにアプリを設定しますアプリを常に表示したい場合は、ロック画面の上に設定することで有用。これは非常に簡単に達成でき、アクティビティウィンドウに追加のフラグをいくつか設定するだけで済みます。
getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
(キオスクアプリに関連するドキュメントの最も有用な要素のスニペット)
Apple Configurator を使用すると、このソリューションはiOSで簡単に処理されます。これにより、「監視」モードと呼ばれるデバイスをデバイスに展開できます。このモードでは、デバイスが使用する単一のアプリケーションを設定できます。
この場合、デバイスは起動時にそのアプリケーションを自動ロードし、ユーザーが通常の方法で終了することを許可しません。
私は、iPadが実際には単一のアプリを実行するアプライアンスとしてのみ意図されている小売および教育向けに設計されていると思います。
Apple Configuratorにはいくつかのスケーリングの問題があります(構成するにはMacへのUSB接続が必要です)が、MDMソフトウェア(Airwatchなど)と組み合わせて使用すると、これらの問題のいくつかに対処できます。
Androidに関しては、@ gardianが指摘するようにプログラムによるオプションがあるかもしれませんが、同様のタスクを実行するために広くサポートされている機能は見たことがありません。 MDMソリューションがある場合にできることは、デバイスをいくつかのアプリケーションのみにロックすることです。この分野で注意すべきことの1つは、Android MDMはメーカーや特定の携帯電話に固有である可能性があることです。基本的なAndroid MDM APIはかなり基本的ですが、Samsungたとえば、追加のロックダウンオプションを追加するSAFEプログラムがあります。
IOSでは、ガイド付きアクセスを使用してそれを実現できます。
設定->一般->アクセシビリティ->ガイド付きアクセス->オン、
IPhone/iPadをロックするアプリを起動し、ホームボタンをトリプルクリックして、画面の指示に従います。
ガイド付きアクセスとApple Configuratorはどちらも有効なソリューションですが、ステータスバーの削除はiOSでは簡単です。アプリの初期化でこのメソッド呼び出しを使用して非表示にします。
[[UIApplication sharedApplication] setStatusBarHidden:YES
withAnimation:UIStatusBarAnimationSlide];
UIApplication.sharedApplication().setStatusBarHidden(true, withAnimation: UIStatusBarAnimation.None)