我正在编写替换 LockScreen,并LayoutParams.DISSMISS_KEYGUARD
在打开屏幕并启动我的 LockScreen 时将 Keyguard 用作 Window 标志,但它总是在再次按下电源按钮时播放锁定声音,我怎样才能抑制锁定声音?
问问题
307 次
1 回答
1
您可以使用 anAudioManager
来关闭声音,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 回答