我正在试验声音管理应用程序,为“铃声、通知、媒体、系统”创建不同的声音配置文件。
通过设置卷级别,我成功地使用了
AudioManager setStreamVolume(AudioManager.STREAM_RING, <value>);挑战来自振动设置。
当前,api调用:
AudioManager setVibrateSetting(vibrateType, vibrateSetting);在API级别16中被废弃,没有使用它的希望。
其他的选择是使用
AudioManager setRingerMode(AudioManager.RINGER_MODE_NORMAL);但我正期待着关闭和打开振动
从我的自定义应用程序。或者随时为其中之一打开电源。
您可以认为我正在做一些类似于启用和禁用声音设置的振动从操作系统设置选项。
有什么帮助吗?
发布于 2015-05-11 21:28:26
试试这个:
audioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT);
audioManager.setVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER, AudioManager.VIBRATE_SETTING_OFF);
audioManager.setVibrateSetting(AudioManager.VIBRATE_TYPE_NOTIFICATION, AudioManager.VIBRATE_SETTING_OFF);发布于 2013-12-09 07:08:12
首先,您需要在Manifest文件中定义如下所示
<uses-permission android:name="android.permission.VIBRATE" />像这样在你的类文件中使用。不知道你到底要把这个放哪儿。
// You need to define some sort of pattern for this
Vibrator vb = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
long[] pattern = {0, 1000, 0};
//long[] pattern = {startTime, TotalTimeDuration, not vibrating for 0ms}; .. Example for above stuff
vb.vibrate(pattern, 0);例如:
button.setOnTouchListener(new OnTouchListener() {
Vibrator vb = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
long[] pattern = {0, 1000, 0};
vb.vibrate(pattern, 0);
break;
case MotionEvent.ACTION_UP:
vb.cancel();
break;
}
return false;
}
});https://stackoverflow.com/questions/20464999
复制相似问题