私は、Ice Cream Sandwich (Android 4.0) の Android マーケット (または、現在は Play ストア) に決してリリースしない会社向けのプロプライエタリ アプリを作成しています。
ユーザーが悪意を持ってソフトウェアをアンインストールしたり、アプリがキャプチャしたデータを削除したりできないように、ホームを無効にする必要があります。この最新バージョンは 4.0 で書かれた最初のバージョンで、以前のバージョンは 2.2 と 3.2 で書かれています。
2.2 でホーム ボタンを無効にするために、アプリをホームの代替として関連付けたので、ボタンはアプリを再度開いただけですが、この方法は使用できなくなりました。データの削除につながるため、ホームのデフォルトを再選択するオプションをユーザーに提供する必要があります。
3.2でホームボタンを無効にするためのコードは次のとおりです。
@Override
public void onAttachedToWindow() {
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
super.onAttachedToWindow();
}
そして、onCreateの下で:
KeyguardManager keyguardManager = (KeyguardManager)getSystemService(Context.KEYGUARD_SERVICE);
KeyguardLock lock = keyguardManager.newKeyguardLock(KEYGUARD_SERVICE);
lock.disableKeyguard();
しかし、3.2 タブレットで動作した同じコードを実行すると、4.0 タブレットでは動作しません。
4.0 には、現在 3.2 の実装で持っているのと同じ効果を達成する新しい API またはメソッドがあるかどうか疑問に思っていました。
助けや指示をありがとう。
アダム