2011-07-27 12 views
1

私は電源ボタンをクリックして何かをするアプリを開発しようとしています。電源ボタンロングプレスはどのようにして捕捉できますか?

私はonClick of Powerボタンをキャッチするコードを持っていますが、動作していないようです。画面がロックされます。

今、電源ボタンのonLongPressをキャッチして、「電源オフ」オプションが表示されないようにしようとしています。どのようにそれを行うための任意の提案?

ありがとうございます。

+1

このスレッドを参照してください。http://stackoverflow.com/questions/3703071/how-to-hook-into-the-power-button-in-android –

+0

おかげで、私はそのリンクを検討しています。私はそれを使用しましたが、適切に動作していないようです。 – emmandroid

答えて

1

こんにちは、あなたはちょうどonKeyDownイベントで遊ぶ必要があることをKartikが指摘している以上に、イベントの通知を受けようとしています。

あなたが実際に電源ボタンの動作を防止したいとあなたの質問を理解するフォームを形成することはできません。 ホームボタンのようにアンドロイドのいくつかのイベントを押しても、終了できないアプリを持つ人々を避けることはできません。

+0

ありがとうございます。これを試した後、電源ボタンを無効にすることからメニューボタンを無効にすることに焦点を移しました。それは今、完璧に動作します。 – emmandroid

+0

@emmandroidどのようにメニューボタンを上書きしましたか...私もそれを行う必要があります..plz答え – WISHY

+0

私はこの機能も必要です、あなたはどのように電源とホームボタンをオーバーライドしたか教えてください – Dimitri

0

あなたはhttp://developer.android.com/reference/android/os/PowerManager.html

で説明したようにこれは、彼らは、電源ボタンを押したときに何が起こるかの人々の期待を持つCPUや混乱を排出するので、それに注意することができ、上に滞在し、画面を強制することができます。

+1

あなた自身がパワーマネージメントを使用するのは危険だと言っていましたが、あなたの答えは質問とは何の関係もありません。彼はonkeypressedイベントの取得方法と停止方法を尋ねていますが、powermanagerだけが携帯電話は、アプリケーションを実行してからbeaueそのbeensは、あまりにも長い非アクティブです。 –

+0

リンクから: "あなたが部分的なウェークロックを保持している場合、CPUはタイマーに関係なく、そしてユーザーが電源ボタンを押した後でも、引き続き実行されます。そう、直接答えはありませんが、実際には電源を切ることはできません.CPUを稼動させ、上記のAPIに応じて任意の画面を表示してください。 – Clueless

12

これは確実に長押しボタンを防ぎます。

@Override 
    public void onWindowFocusChanged(boolean hasFocus) { 
     super.onWindowFocusChanged(hasFocus); 
     if(!hasFocus) { 
      Intent closeDialog = new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS); 
      sendBroadcast(closeDialog); 
     } 
    } 
関連する問題