2012-04-09 8 views
8

アイスクリームサンドイッチ(Android 4.0)でAndroidマーケット(または今のところはPlayストア)に公開することのない企業向けの独自のアプリを作っています。Android ICS(4.0)のホームボタンを無効にする

ユーザーが悪意を持ってソフトウェアをアンインストールしたり、アプリケーションが取得したデータを削除できないように、ホームを無効にする必要があります。この最新バージョンは4.0で最初に書かれたもので、以前のバージョンは2.2と3.2で書かれています。

2.2のホームボタンを無効にするために、私は自宅代替品としてアプリを関連付けました。ボタンはアプリをもう一度開きましたが、この方法を使用できなくなりました。それは、データの削除につながるとして、(私たちは、ユーザーにホームのデフォルトを再選択するオプションを与えたくない

3.2にホームボタンをdisableingため、私が持っているコードは次のとおりです。

@Override 
public void onAttachedToWindow() { 
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); 
    this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD); 
    super.onAttachedToWindow(); 
} 

そして、作成中:

KeyguardManager keyguardManager = (KeyguardManager)getSystemService(Context.KEYGUARD_SERVICE); 
KeyguardLock lock = keyguardManager.newKeyguardLock(KEYGUARD_SERVICE); 
lock.disableKeyguard(); 

しかし、3.2のタブレットで動作するのと同じコードを実行すると、4.0タブレットでは機能しません。

私の現在の3.2の実装と同じ効果を達成する新しいAPIまたはメソッドがあるかどうかは疑問でした。

ご協力いただきありがとうございます。

アダム

+0

アプリがマルウェアのように振る舞います。 Android 4.0+はまさにそれを防ぐために設計されています。 – Dubs

答えて

6

どのように回避策について..

ホーム画面のボタンは、このアプリがフォアグラウンドに来る押されたときに、ホーム画面を実装して第二のアプリを書きます。このアプリからメインアプリをフォアグラウンドにプッシュバックする必要があります。唯一のキャッチは、あなたのホームスクリーンアプリがアップデートを必要としてはいけないということですが、ホームランチャーの設定を要求するタブを使わずにメインアプリを自由にアップデートできるはずです。それはユーザから離れた機器の制御を取ることに意味があります

ホープ..

+0

あなたの説明は理にかなっており、完璧に機能しました。メインアプリからホームハイジャッカーまでわずかなちらつきしかありませんでしたが、それはアプリを切り替えることで期待されます。開始時に、私はハイジャックするアプリを背中に動かし、フリッカーのいくつかを減らしました。 – adamacdo

+0

ユーザーはまだこのアプリの選択を解除することができます –

+0

私は同じ種類のシナリオが必要ですが、Eclipse DDMSを使用してアプリケーションを終了することもできます。 ホームボタンの長押しを無効にする方法はありますか? – DAS

0

ありません....あなたは少なくともAndroid4.0用ホームボタンを無効にすることはできません..あなたは、HOMEボタンに反応し、ホーム画面を実装したい場合は、「hotveryspicy」のソリューションを使用します。

+0

私はアプリを更新すると、ユーザーは機密データを削除することができるランチャーとして株Homeを選択することができるので、ホーム画面としてアプリを数えられません...これはナンバーワンのことです私は避ける必要があります。 – adamacdo

関連する問題