通知提醒对很多应用来说必不可少的,但是有的提醒方式需要根据系统声音模式进行相应的改变,比如系统声音模式设置为静音则响应方式也应为静音,为震动则为震动,通过获取系统声音模式改变响应方式是apk必备要点,以下为代码.
主要代码:
public class SoundCtrol {
private Vibrator mVibrator;
private int MUTE = 0; //静音
private int VIBRATE = 1;//振动
private int SOUND = 2;//响玲
public void playSound(Context context,MediaPlayer player) {
//创建震动服务对象
mVibrator=(Vibrator)context.getSystemService(Service.VIBRATOR_SERVICE);
AudioManager am = (AudioManager)context.getSystemService(Context.AUDIO_SERVICE);
//ringerMode为手机的系统声音设置的状态值,0位静音,1为震动,2为响铃
final int ringerMode = am.getRingerMode();
if (ringerMode == MUTE) {
//do nothing
}else if (ringerMode == VIBRATE) {
//设置震动周期,数组表示时间:等待+执行,单位是毫秒,下面操作代表:等待100,执行100,等待100,执行1000,
//后面的数字如果为-1代表不重复,之执行一次,其他代表会重复,0代表从数组的第0个位置开始
mVibrator.vibrate(new long[]{100,0,100,500},-1);
} else if (ringerMode == SOUND) {
//播放声音
player.start();
}
}
}
权限声明
<uses-permission android:name="android.permission.VIBRATE"/>
end