0

代替の LockScreen を作成しLayoutParams.DISSMISS_KEYGUARDています。ウィンドウ フラグとして使用すると、画面をオンにして LockScreen を起動するときにキーガードが閉じられますが、電源ボタンをもう一度押すと常にロック音が鳴ります。どうすればロック音を抑えることができますか?

4

1 に答える 1

1

を使用しAudioManagerてサウンドをオフにしOnCreate、後でオンに戻すことができます。また、すでにオフになっているときにサウンドをオンにしないように、サウンドがオフになっているかどうかを確認して開始することもできます。

音の状態を確認するには

am = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
switch (am.getRingerMode()) {
case AudioManager.RINGER_MODE_SILENT:
case AudioManager.RINGER_MODE_VIBRATE:
    silentMode = true;
    break;
case AudioManager.RINGER_MODE_NORMAL:
    silentMode = false;
    break;
}

これで音を消す

am = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
am.setRingerMode(AudioManager.RINGER_MODE_VIBRATE);
    OR
am.setRingerMode(AudioManager.RINGER_MODE_SILENT);

サウンドをオンにするには

am = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
am.setRingerMode(AudioManager.RINGER_MODE_NORMAL);

もちろん、おそらくamプライベート変数を作成するので、何度も宣言する必要はありません。このような。

public class MainActivity extends Activity {
    //more variables
    private AudioManager am;
    private boolean silentMode;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        am = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
        //check sound state and set silentMode;
        //more stuff
    }
}

いつサウンドをオンに戻すかはよくわかりませんが、おそらく呼び出しの後に試す場所ですgetWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);

于 2013-02-03T22:16:25.140 に答える