Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/207.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何以编程方式启用和禁用振动模式_Android_Performance_Android Layout_Android Intent_Android Activity - Fatal编程技术网

Android 如何以编程方式启用和禁用振动模式

Android 如何以编程方式启用和禁用振动模式,android,performance,android-layout,android-intent,android-activity,Android,Performance,Android Layout,Android Intent,Android Activity,我需要在用户关闭和打开开关按钮时启用和禁用手机的振动模式 我尝试了下面的代码,但不起作用: AudioManager myAudioManager; myAudioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE); Toast.makeText(this, "in setting "+(myAudioManager.getMode()==AudioManager.RINGER_MODE_VIBRATE),1).sho

我需要在用户关闭和打开开关按钮时启用和禁用手机的振动模式

我尝试了下面的代码,但不起作用:

AudioManager myAudioManager;
myAudioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);

Toast.makeText(this, "in setting "+(myAudioManager.getMode()==AudioManager.RINGER_MODE_VIBRATE),1).show();

if(myAudioManager.getMode()==AudioManager.RINGER_MODE_VIBRATE) {
    //myAudioManager.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
    myAudioManager.setVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER, AudioManager.VIBRATE_SETTING_OFF);
}
else
{
    //myAudioManager.setRingerMode(AudioManager.RINGER_MODE_VIBRATE);
    myAudioManager.setVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER, AudioManager.VIBRATE_SETTING_ON);
}

首先,在AndroidManifest.xml中使用此权限

<uses-permission android:name="android.permission.VIBRATE"/>
振动模式 公共抽象空振动(长[]模式,整数重复) 振动模式只不过是一组持续时间,以毫秒为单位打开和关闭可控震源。第一个值指示打开可控震源之前要等待的毫秒数。下一个值指示在关闭可控震源之前保持可控震源打开的毫秒数。后续值在打开和关闭之间交替

long pattern[]={0,100,200,300,400};
如果你觉得没有重复,只需通过-1表示“重复”。要重复模式,只需从你想要开始的地方传递索引。我想从第0个索引开始,因此我将0传递给“repeat”

vibrator.vibrate(pattern, 0);

我们可以使用AudioManager以编程方式启用和禁用静默模式:

 AudioManager audioManager = (AudioManager) getSystemService(AUDIO_SERVICE);
对于设置静默模式:

audioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT);
对于正常模式:

audioManager.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
此方法在API级别16中被弃用

您可以使用这个:

audioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT)
振铃器\模式\静音:将使音量静音且不会振动

振铃器\模式\振动:将使音量静音并振动


RINGER_MODE_NORMAL(振铃器模式)\正常:可听到声音,并可根据用户设置进行振动。

Hi Richard的可能副本,我不想讨论启动振动,我想启用和禁用它。在链接“android中启用/禁用振动功能?”中,他们回答了启动振动的问题。不用于启用和禁用它。这只是启动振动,我们不需要启动振动,只需要启用和禁用它。
Vibrator v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
// Vibrate for 500 milliseconds
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
    v.vibrate(VibrationEffect.createOneShot(500, VibrationEffect.DEFAULT_AMPLITUDE));
} else {
    //deprecated in API 26 
    v.vibrate(500);
}
audioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT)
Vibrator v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
// Vibrate for 500 milliseconds
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
    v.vibrate(VibrationEffect.createOneShot(500, VibrationEffect.DEFAULT_AMPLITUDE));
} else {
    //deprecated in API 26 
    v.vibrate(500);
}