微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 手机设计讨论 > MTK手机平台交流 > mt6735 情景模式中设置来电铃声,添加“无”选项之后不能保存状态

mt6735 情景模式中设置来电铃声,添加“无”选项之后不能保存状态

时间:10-02 整理:3721RD 点击:
[Audio Profile]情景模式中设置来电铃声,添加“无”选项之后不能保存状态
[DESCRIPTION]
在 DefaultRingtonePreference.Java 里,将EXTRA_RINGTONE_SHOW_SELENT这一项设为true,则可在来电铃声选项中增加“无”选项。但是存在如下问题:
1. 设置-情景模式-标准-语音来电铃声,选择"无“,点击确认。
2. 再次打开语音来电铃声,发现”无“选项并没有被选中,仍然是系统设置的默认铃声
[SOLUTION]
因为RingtonePickerActivity在初始化时, AudioProfileService.java 中会判断若当前uri值为SILENT_NOTIFICATION_URI 时,将uri设为null,否则就设置为当前保存值或者是default值。
所以,可以这样修改:
1. 在RingtonePickerActivity.java中:
(1). 定义
public static final Uri SILENT_NOTIFICATION_URI = Uri.parse("com.mediatek.uri.silent_notificaton");

(2). 在mRingtoneCLIckListener函数中的onClick方法里面:

else {
// Save the position of most recently clicked item
mClickedPos = which;
// Play clip
playRingtone(which, 0);
/// M: save the uri of current position
mExistingUri = mRingtoneManager.getRingtoneUri(getRingtoneManagerPosition(which));
}
修改为:
else {
// Save the position of most recently clicked item
mClickedPos = which;
//start add by mtk
if (mSilentPos == mClickedPos ){
stopAnyPlayingRingtone();
mExistingUri = SILENT_NOTIFICATION_URI;
}
else{
//end add by mtk
// Play clip
playRingtone(which, 0);
/// M: save the uri of current position
mExistingUri = mRingtoneManager.getRingtoneUri(getRingtoneManagerPosition(which));
} //add by mtk
}

(3). 在RingtonePickerActivity类的 onClick函数中,

else if (mClickedPos == mSilentPos) {
// A null Uri is for the 'Silent' item
uri = null; // modify this line
} else {
uri = mRingtoneManager.getRingtoneUri(getRingtoneManagerPosition(mClickedPos));
}
改为:
else if (mClickedPos == mSilentPos) {
// A null Uri is for the 'Silent' item
uri = SILENT_NOTIFICATION_URI; // modify this line
} else {
uri = mRingtoneManager.getRingtoneUri(getRingtoneManagerPosition(mClickedPos));
}

2 . 在ringer.java里面,这样修改:
(1). 增加定义:
public static final String SILENT_NOTIFICATION_URI =
"com.mediatek.uri.silent_notificaton";

(2). 在setCustomRingtoneUri(Uri uri)里增加如下:
void setCustomRingtoneUri (Uri uri) {
/// M: if the uri is not aviable(ex, ALPS00414350), use default Ringtone @{
// if (uri != null) {
// log("setCustomRingtoneUri = " + uri);
// mCustomRingtoneUri = uri;
// }
////start modify for FAQ12741
log("Get actual default ringtone uri= " + uri);
if (uri.equals(Settings.System.DEFAULT_RINGTONE_URI)){
final String uriString = Settings.System.getString(mContext.getContentResolver(),
Settings.System.RINGTONE);
log("Get actual default System.RINGTONE uri= " + uriString);
if (SILENT_NOTIFICATION_URI.equals(uriString)){
mCustomRingtoneUri = null;
log("SILENT_NOTIFICATION_URI, set uri to be null ");
return;
}
}
//end modify for FAQ12741
...
...
}
目前本地验证ok。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top