首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何以编程方式启用和禁用振动模式

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

Stack Overflow用户
提问于 2015-03-23 10:50:44
回答 4查看 14.7K关注 0票数 5

我需要启用和禁用移动模式时,用户关闭和打开开关按钮。

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

代码语言:javascript
运行
复制
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);
}
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-03-26 08:10:56

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

代码语言:javascript
运行
复制
 AudioManager audioManager = (AudioManager) getSystemService(AUDIO_SERVICE);

用于设置静默模式:

代码语言:javascript
运行
复制
audioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT);

对于正常模式:

代码语言:javascript
运行
复制
audioManager.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
票数 7
EN

Stack Overflow用户

发布于 2015-03-23 11:12:02

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

代码语言:javascript
运行
复制
<uses-permission android:name="android.permission.VIBRATE"/>

现在

代码语言:javascript
运行
复制
public void startVibrate(View v) {
  long pattern[] = { 0, 100, 200, 300, 400 };
  vibrator = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
  vibrator.vibrate(pattern, 0);
 }

  public void stopVibrate(View v) {
  vibrator.cancel();
 }

振动模式公共抽象空洞振动(long[]模式,整数重复)振动模式只是一个持续时间阵列的开关振动器,以毫秒为单位。第一个值表示在打开振子之前等待的毫秒数。下一个值表示在关闭振子之前保持振动器工作的毫秒数。随后的值,在ON和OFF之间交替。

代码语言:javascript
运行
复制
long pattern[]={0,100,200,300,400};

如果你觉得没有重复,只需通过-1的‘重复’。要重复模式,只需从您想要开始的位置传递索引即可。我想从0‘开始,因此我将0传递给’重复‘。

代码语言:javascript
运行
复制
vibrator.vibrate(pattern, 0);
票数 5
EN

Stack Overflow用户

发布于 2017-09-20 13:01:34

代码语言:javascript
运行
复制
 myAudioManager.setVibrateSetting();

API级别16中不推荐此方法。

你可以用这个:

代码语言:javascript
运行
复制
audioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT)

RINGER_MODE_SILENT :会使音量变小,不会震动。

RINGER_MODE_VIBRATE:将静音和振动。

RINGER_MODE_NORMAL:将是可听到的,并可根据用户的设置振动。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29208366

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档