今、私は次のような機能を実装したいと考えています: アクティビティで、HOME、VOLUME_UP、VOLUME_DOWM などのすべてのハードウェア ボタンをシールドします。ただし、POWERボタンのみシールドできません。方法はありますか?
1 に答える
1
電源やホームなどの Android の特定のキーを傍受することはできません。たとえば、ホーム キーは傍受できません。これにより、悪意のあるアプリケーションが機能を上書きできるようになるためです。
ホーム キーをインターセプトできる唯一の方法は、アプリケーションがandroid.intent.category.HOME
マニフェストで使用することにより、ホーム アプリの置き換え自体である場合です。
次のように、音量の上下などの他のキーをキャッチできます
public boolean dispatchKeyEvent(KeyEvent event) {
int action = event.getAction();
int keyCode = event.getKeyCode();
switch (keyCode) {
case KeyEvent.KEYCODE_VOLUME_UP:
if (action == KeyEvent.ACTION_UP) {
//handle the key event
}
return true;
case KeyEvent.KEYCODE_VOLUME_DOWN:
if (action == KeyEvent.ACTION_DOWN) {
//handle the key event
}
return true;
default:
return super.dispatchKeyEvent(event);
}
}
Android デベロッパーのブログ投稿で次の投稿を読んでください。
于 2012-07-04T12:10:35.770 に答える