mt6735 L版本静音模式下闹铃是不能响铃或震动的,如何让能震动(...
时间:10-02
整理:3721RD
点击:
[Audio Profile]L版本静音模式下闹铃是不能响铃或震动的,如何让能震动(不响铃)
[DESCRIPTION]
L版本: 设置-情景模式-静音,开启一个闹钟,等闹钟时间到时,无声音,如何将其修改为震动?
[SOLUTION]
L版本上增加了防打扰功能,在静音模式下是默认不能响铃和震动的,如果想要在静音模式下能够响铃,则参考FAQ14086, 若想要在静音模式下能够震动,则方法如下:
(1) 若想选择了震动选项就震动,否则不震动,则:
修改packages\apps\DeskClock\src\com\android\deskclock\alARMs\AlarmKlaxon.Java 文件的
start():
if (instance.mVibrate) {
Vibrator vibrator = (Vibrator) context.getSystEMService(Context.VIBRATOR_SERVICE);
vibrator.vibrate(VIBRATE_PATTERN, 0, VIBRATION_ATTRIBUTES);
}
把vibrator.vibrate(VIBRATE_PATTERN, 0, VIBRATION_ATTRIBUTES)
修改成:vibrator.vibrate(VIBRATE_PATTERN, 0),即可。
这里实际上就是去掉防打扰功能的意思。
VIBRATE_ATTRIBUTES参数中的USE_ALARM,就是在ZenModeHelper.java中的applyRestrictions()将其声音和震动都mute掉。
(2)若想不管是否选择震动选项,都震动,则:
修改packages\apps\DeskClock\src\com\android\deskclock\alarms\AlarmKlaxon.java 文件的startAlarm ():
private static void startAlarm(Context context, MediaPlayer player) throws IOException {
Log.v("startAlarm, check StreamVolume and requestAudioFocus");
AudioManager audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
// do not play alarms if stream volume is 0 (typically because ringer mode is silent).
if (audioManager.getStreamVolume(AudioManager.STREAM_ALARM) != 0) {
if(audioManager.getStreamVolume(AudioManager.STREAM_RING) != 0){ //modify
player.setAudioStreamType(AudioManager.STREAM_ALARM);
player.setLooping(true);
player.prepare();
audioManager.requestAudioFocus(null,
AudioManager.STREAM_ALARM, AudioManager.AUDIOFOCUS_GAIN_TRANSIENT);
player.start();
Log.d("Play successful, StreamVolume != 0");
}else{ // modify
boolean bShouldVibrate = false;
Vibrator vibrator = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE);
boolean mHasVibrator mHasVibrator = vibrator == null ? false : vibrator.hasVibrator();
bShouldVibrate = mHasVibrator;
if (bShouldVibrate) {
Vibrator vibrator = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE);
if (vibrator != null) {
Log.v("vibrator starts,and vibrates:" );
vibrator.vibrate(VIBRATE_PATTERN, 0);
}
Log.d("- starting vibrator...");
}
}
}
附:
[Audio APP]关于拨号盘选项里设置双卡铃声的问题
[DESCRIPTION]
假若在情景模式这边已经打完patch,可以实现双卡铃声的设置。但此时在拨号盘选项里设置铃声,发现不能设置双卡铃声
[SOLUTION]
我司不支持在拨号盘里设置双卡铃声,因为修改起来的话,修改会非常多,需要把情景模式那边的一套做法整体都搬到dialer这边来,需要增加很多函数接口,实现起来比较困难。
建议在打开双卡铃声时,拿掉这个功能,即在apps/Dialer下面的GeneralSettingsFragment.java里的RingtonePreference相关的,都用mtk_MULTISIM_RINGTONE_SUPPORT 来包含住。
[DESCRIPTION]
L版本: 设置-情景模式-静音,开启一个闹钟,等闹钟时间到时,无声音,如何将其修改为震动?
[SOLUTION]
L版本上增加了防打扰功能,在静音模式下是默认不能响铃和震动的,如果想要在静音模式下能够响铃,则参考FAQ14086, 若想要在静音模式下能够震动,则方法如下:
(1) 若想选择了震动选项就震动,否则不震动,则:
修改packages\apps\DeskClock\src\com\android\deskclock\alARMs\AlarmKlaxon.Java 文件的
start():
if (instance.mVibrate) {
Vibrator vibrator = (Vibrator) context.getSystEMService(Context.VIBRATOR_SERVICE);
vibrator.vibrate(VIBRATE_PATTERN, 0, VIBRATION_ATTRIBUTES);
}
把vibrator.vibrate(VIBRATE_PATTERN, 0, VIBRATION_ATTRIBUTES)
修改成:vibrator.vibrate(VIBRATE_PATTERN, 0),即可。
这里实际上就是去掉防打扰功能的意思。
VIBRATE_ATTRIBUTES参数中的USE_ALARM,就是在ZenModeHelper.java中的applyRestrictions()将其声音和震动都mute掉。
(2)若想不管是否选择震动选项,都震动,则:
修改packages\apps\DeskClock\src\com\android\deskclock\alarms\AlarmKlaxon.java 文件的startAlarm ():
private static void startAlarm(Context context, MediaPlayer player) throws IOException {
Log.v("startAlarm, check StreamVolume and requestAudioFocus");
AudioManager audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
// do not play alarms if stream volume is 0 (typically because ringer mode is silent).
if (audioManager.getStreamVolume(AudioManager.STREAM_ALARM) != 0) {
if(audioManager.getStreamVolume(AudioManager.STREAM_RING) != 0){ //modify
player.setAudioStreamType(AudioManager.STREAM_ALARM);
player.setLooping(true);
player.prepare();
audioManager.requestAudioFocus(null,
AudioManager.STREAM_ALARM, AudioManager.AUDIOFOCUS_GAIN_TRANSIENT);
player.start();
Log.d("Play successful, StreamVolume != 0");
}else{ // modify
boolean bShouldVibrate = false;
Vibrator vibrator = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE);
boolean mHasVibrator mHasVibrator = vibrator == null ? false : vibrator.hasVibrator();
bShouldVibrate = mHasVibrator;
if (bShouldVibrate) {
Vibrator vibrator = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE);
if (vibrator != null) {
Log.v("vibrator starts,and vibrates:" );
vibrator.vibrate(VIBRATE_PATTERN, 0);
}
Log.d("- starting vibrator...");
}
}
}
附:
[Audio APP]关于拨号盘选项里设置双卡铃声的问题
[DESCRIPTION]
假若在情景模式这边已经打完patch,可以实现双卡铃声的设置。但此时在拨号盘选项里设置铃声,发现不能设置双卡铃声
[SOLUTION]
我司不支持在拨号盘里设置双卡铃声,因为修改起来的话,修改会非常多,需要把情景模式那边的一套做法整体都搬到dialer这边来,需要增加很多函数接口,实现起来比较困难。
建议在打开双卡铃声时,拿掉这个功能,即在apps/Dialer下面的GeneralSettingsFragment.java里的RingtonePreference相关的,都用mtk_MULTISIM_RINGTONE_SUPPORT 来包含住。