2011-12-20 15 views
0

セキュリティアプリケーションを開発中です。ユーザーが特定の時間ハードウェアボタンを押すと、アクションが発生します。デバイスがスリープ状態にあるときにハードウェアボタンが押されるイベント

PowerやVolumeのようなハードウェアボタンを押すだけで反応が必要です。 私のアプリケーションは、ユーザーが画面のロックを解除することなく、バックグラウンドで動作する必要があります。問題は、デバイスが「スリープ状態」の間にボタンを押したときにイベントをキャッチできないことです。

ユーザーが電源ボタンを3秒間押すと、電子メールが送信される可能性があります。

KeyEvent.KEYCODE_POWERはサービスでは機能せず、アクティビティは一時停止または破棄されます。

私の問題を解決する方法はありますか?

これを実現するためにBrodcastReceiverはありますか?

答えて

-2

このbuttonId.performClick()を使用します。以下の目的のために使用されます。

このボタンをクリックすることなく、そのボタンのクリック操作を実行することができます。このボタンをクリックすることなく、そのボタンのonclickメソッドを呼び出すことができます。

+0

私はその質問に答えるとは思わない。必要なのは、実際のボタンクリックを検出することであり、偽装することではありません。 – barry

+0

buttonid.setOnClickListener(new ....実行したいコードを書いてください); –

+0

彼のアプリケーションはバックグラウンドで実行されており、ハードウェアのボタンを検出する必要があるため、これはまだ役に立ちません。 – barry

1

私はあなたに最も良い方法は、BroadcastReceiverを作成することだと思います。しかし、ここでは購読する行動の問題になるでしょう。たぶん、あなたに適した何かを見つけることができますhere。 「標準的なブロードキャストアクション」を探します。

+0

このリンクでは、「これはシステムによってのみ送信可能な保護されたインテントです」という文字列を検索するほうが、 – Jin35

関連する問題