Android 在没有解锁声音的情况下关闭键盘护板
我正在编写一个替换的锁屏,并使用Android 在没有解锁声音的情况下关闭键盘护板,android,Android,我正在编写一个替换的锁屏,并使用LayoutParams.DISSMISS_KEYGUARD作为一个窗口标志,在打开屏幕和启动锁屏时关闭键盘,但是当再次按下电源按钮时,它总是会发出锁定声,我如何才能超过锁定声 您可以使用AudioManager在OnCreate中关闭声音,然后稍后再打开。您还需要检查声音是否已关闭才能启动,以便在声音已关闭时不会打开声音 此选项用于检查声音状态 am = (AudioManager) getSystemService(Context.AUDIO_SERVICE)
LayoutParams.DISSMISS_KEYGUARD
作为一个窗口标志,在打开屏幕和启动锁屏时关闭键盘,但是当再次按下电源按钮时,它总是会发出锁定声,我如何才能超过锁定声 您可以使用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\u disease\u KEYGUARD)之后,可能有一个地方可以尝试代码>谢谢,我会尝试一下,但我想这可能是比赛条件,因为在onCreate中键盘保护也被解除。是的,我刚刚意识到打开声音也会播放声音。这只在您希望锁屏静音的情况下起作用。然后在解锁屏幕时重新打开声音。