3

私は Android アプリケーションを開発しています。私のアプリは起動するとアラームを再生しますが、電話がアラームを鳴らしているときにユーザーがアラームの音量を下げることができないように、外部音量ボタンを無効にしたいと考えています。Android バージョン 2.3.5 を搭載した携帯電話でテストしましたが、動作しません。以下は私のコーディングです。誰かが私を助けてくれることを願っています...ありがとう。

@Override
public boolean onKeyDown(int keyCode, KeyEvent event){

    if (keyCode == KeyEvent.KEYCODE_VOLUME_UP){
        Toast.makeText(this, "Volume Up", Toast.LENGTH_LONG).show();
        return true;
    }

    if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN){
        Toast.makeText(this, "Volume Down", Toast.LENGTH_LONG).show();
        return true;
    }

    return super.onKeyDown(keyCode, event);
}
4

3 に答える 3

10

オーバーライドしてみてくださいdispatchKeyEvent(KeyEvent event):

@Override
public boolean dispatchKeyEvent(KeyEvent event) {
    boolean result;
     switch( event.getKeyCode() ) {
        case KeyEvent.KEYCODE_VOLUME_UP:
        case KeyEvent.KEYCODE_VOLUME_DOWN:
            result = true;
            break;

         default:
            result= super.dispatchKeyEvent(event);
            break;
     }

     return result;
}

この記事も参照してください

于 2012-11-21T14:32:04.870 に答える
0

最良の方法は、あるオーディオストリーム(AudioManager.STREAM_ALARM)でアラーム音を再生し、音量ボタンを別のオーディオストリームに関連付けることです(setVolumeControlStream(AudioManager.STREAM_MUSIC);)。http://developer.android.com/training/managing-audio/volume-playback.html#HardwareVolumeKeys

于 2012-11-21T14:54:44.887 に答える