2013-05-02 5 views
7

私はアンドロイドタブレット用のアプリケーションを開発しようとしています。アンドロイドアプリケーションを閉じるためにすべての方法をブロックする

このタブレットは一般公開され、手で触れることができます。

パスワードを尋ねるボタン/設定メニューを除いて、アプリを閉じるためにすべての方法をブロックします。

しかし、いくつかの研究の後、私はこれは可能ですが、私は電源ボタンを長押ししてもまだ仕事ができ、自宅も息子も帰ります。だから、質問1はこれが可能で、それがどのようなものか?

+0

なぜ突然答えられないのですか? –

+0

私はちょうどそれを可能にするいくつかの新機能を発見したが、投稿する前にいくつかのテストを行う – Jebik

+0

私はあなたが方法を見つけた場合、私たちが知ることができるだけのコードを投稿するユーザーの相互作用なしでそれを達成することはできません。 –

答えて

1

3.2 ().getDecorView()。setSystemUiVisibility(8);

しかし、この8はシステムUIを完全に無効にするための隠しフラグです。あなたのアプリは完全に完全な画面になっています(これをアプリを閉じるために使用する場合は注意してください) 8フラグは完全に文書化されていません。以来、私は4.0と4.1の両方のために動作するdevのこの仕事のバージョンであなたに教えてください。 Dunno for 3.0ですが、試用するデバイスはありません。

そして、あなたは、いくつかの警告ダイアログを使用している場合systemUiが見えるようになりますが、あなたがいずれかを使用していない場合は、 を終了することはできませんので、これは完璧ではない、あなたのマニフェスト

でandroid.permission.EXPAND_STATUS_BARを忘れないでください長押し電源システムUIが見えすぎ

作るしかし、あなたは、あなたがこれを行う場合は、もうあなたのアプリを終了することはできません(または私は忘れてしまっている速いウィット以下の方法

public void onWindowFocusChanged(boolean hasFocus) { 
super.onWindowFocusChanged(hasFocus); 
if(!hasFocus) { 
    Intent closeDialog = new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS); 
    sendBroadcast(closeDialog); 
    } 
} 

それを殺すことができるpowerpopupを作りますクローへの道それ?)そうplaystore上のavaible SureLock(アプリ)のようなものを作るためにする前に、2秒で3touchはそれを終了し、これは

そして最後を支援し、完了することができます

希望のパスを尋ねるアクティビティを起動念頭に置いておきます質問はまだ解決されていません setSystemUiVisibility(8);バッテリーがアラートを作るか、またはあなたが本当に警戒が必要だと思う場合は、警告が表示さ

+0

私はこれを試してみましたが、 。 –

+0

あなたのデバイスは何ですか?私はギャラクシータブでも可能ですが、私はデフォルトの家庭のように私のアプリを設定していますので、ホームボタンを一回押すだけで何もしません。 – Jebik

+0

私はsamsung galaxy nexusを使っています –

2

Androidデバイスが実行された場合、トロルアプリケーションがAndroidデバイスを制御するのを避けるために、デバイスへのルートアクセスなしではこれを実行できないことは間違いありません。

+0

私はrootになることができます。しかし、このアプリは多くのデバイスにインストールされ、根本的な手順はクライアントによって行うことができます... – Jebik

3
+0

ええ私はいくつかを検索しかし、彼らは何かのために誰もがそれをするとにかく知っていれば私は無効にするために尋ねた理由はないと言う – Jebik

1

単にあなたがこれを行うことはできません、あなたがするユーザーを停止することはできませんstackoverflowの中に質問にあなたはすべての答えを見つけることができますプレスHome Button

戻るプレスイベント。

あなたはonAttachedToWindow()を使用してホームボタンを押してからユーザーを停止することができますが、これはから動作しない場合がありますアンドロイド私は最終的にこの

は、GetWindowについてこの

ませドキュメントを行わないための方法を発見した

0

で最初にあなたのマニフェスト

<activity android:name=".MainActivity"> 
      <intent-filter> 
       <action android:name="android.settings.SETTINGS" /> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.HOME" /> 
       <category android:name="android.intent.category.DEFAULT" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 

      </intent-filter> 
    </activity> 
から家としてアプリケーションを追加する必要があるが、これはシステムのUIが表示されます場合は理由追加フラグ後

getWindow().addFlags(WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY); //(dont forget to add flag before `setContentView`) 

無効デバイスロック

private void disableLock() { 

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

無効ホームロングクリック

@Override 
    protected void onUserLeaveHint() { 
     startActivity(new Intent(MainActivity.this,MainActivity.class)); 
     finish(); 
     super.onUserLeaveHint(); 
    } 

実行後、あなたのアプリケーションをホームアプリケーションに設定する必要があります!

関連する問題