mt6735 【Audio Profile】如何分别配置视频铃声的卡1卡2默认铃声

[DESCRIPTION]
按照MT6735 FAQ08273[Audio Profile]如何设置视频来电的默认铃声, 可以设置视频来电 的默认铃声;
按照 FAQ09288 [Audio Profile]在合入双卡铃声设置后,如何分别配 置卡1卡2的默认铃声, 可以分别配置语音来电铃声的卡1卡2的默认铃声; 但是怎么 配置视频来电铃声的卡1卡2默认铃声呢?
[SOLUTION]
按照此FAQ修改的前提是,务必已经按照 FAQ09288 修改,并且编译通过,然后,进 行下述修改:
1,alps\build\target\product\core.mk:
设置系统属性“ro.config.ringtone_sim2”(原来的ro.config.ringtone给卡1用):
PRODUCT_PROPERTY_OVERRIDES := \
ro.config.notification_sound=Proxima.ogg \
ro.config.alARM_alert=Alarm_Classic.ogg \
ro.config.ringtone=Backroad.ogg\
ro.config.ringtone_sim2=Carina.ogg\
ro.config.video_call=Draco.ogg\
ro.config.video_call_sim2=Eridani.ogg


2,php?mod=tag&id=6090" target="_blank" class="relatedlink">Frameworks/base/core/java/android/provider/Settings.java中:
添加卡2的铃声属性字段RINGTONE_SIM2,这个值与前面在core.mk中定义的属性的最 后一个字段相同,如您定义为“ro.config.ringtone_sim2”,
则RINGTONE_SIM2为“RINGTONE_SIM2 = "ringtone_sim2",假设您定义的属性为 “ro.config.ringtone_sim_id_2”
则对应的RINGTONE_SIM2="ringtone_sim_id_2",参考标有//add this line为添加的 部分:
public static final String VIDEO_CALL = "video_call";
public static final String VIDEO_CALL_SIM2 = "video_call_sim2";//add this  line


3,alps\frameworks\base\media\java\android\media\RintoneManager.java:
1),添加SIM2的type,参考//add this line为添加的部分:
public static final int TYPE_VIDEO_CALL = 8;
public static final int TYPE_SIP_CALL = 16;
public static final int TYPE_RINGTONE_SIM2 = 32;//add this line
public static final int TYPE_VIDEO_CALL_SIM2 = 64;//add this line
public static final String KEY_DEFAULT_RINGTONE_SIM2 =
"mtk_audioprofile_default_ringtone_sim2";
public static final String KEY_DEFAULT_VIDEO_CALL_SIM2 =
"mtk_audioprofile_default_video_call_sim2";//add this line


2) 返回获取的sim2的uri,参考//add this line为添加的部分:
public static Uri getDefaultRingtoneUri(Context context, int type) {
...
switch (type) {
case TYPE_VIDEO_CALL:
uriString = Settings.System.getString(resolver, KEY_DEFAULT_VIDEO_CALL);
break;
case TYPE_VIDEO_CALL_SIM2://add this line
uriString = Settings.System.getString(resolver,
KEY_DEFAULT_VIDEO_CALL_SIM2);//add this line
break;//add this line


4,alps\frameworks\base\media\java\android\media\MediaScanner.java中:
1),添加读取到的卡2 的默认铃声相关定义:
private boolean mDefaultVideoCallSet; //add
private boolean mDefaultVideoCallSim2Set; //add
private String mDefaultVideocallFilename; //add
private String mDefaultVideocallSim2Filename; //add
private static final String VIDEOCALL_SET = "videocall_set"; //add
private static final String VIDEOCALL_SIM2_SET = "videocall_sim2_set";
//add


2),将core.mk中定义的sim2 铃声的名字读出来,参考//add this line为添加的部
分:
private void setDefaultRingtoneFileNames() {
mDefaultVideocallFilename =
SystemProperties.get(DEFAULT_RINGTONE_PROPERTY_PREFIX
+ Settings.System.VIDEO_CALL);//add this line
mDefaultVideocallSim2Filename =
SystemProperties.get(DEFAULT_RINGTONE_PROPERTY_PREFIX
+ Settings.System.VIDEO_CALL_SIM2);//add this line
...
}


3),添加isSim2Ringtone来区别设置的是sim1还是sim2,然后将扫描到的文件名和上
面读到的sim2默认铃声文件名对比,如果是sim2 的ringtone,则设置sim2默认值。
参考注有"//add this line"或" //start modify"和"//end modify"包含的地方:
private Uri endFile(FileEntry entry, boolean ringtones, boolean
notifications,
boolean alarms, boolean music, boolean podcasts){
boolean isVideoCall = false; //add this line;
boolean isVoiceCall = false; //add this line, in case the video call and
voice call have same ringtone;
boolean isSim2Ringtone = false; //add this line
boolean isSim2VideoCall = false;//add this line
.....
if (notifications &&((mWasEmptyPrioRTOScan && !mDefaultNotificationSet) ||
doesSettingEmpty(NOTIFICATION_SET))) {
....
//start modify
} else if (ringtones && ((mWasEmptyPriorToScan &&
(!mDefaultRingtoneSet||!mDefaultRingtoneSim2Set || !mDefaultVideoCallSet||
!mDefaultVideoCallSim2Set)) ||
doesSettingEmpty(RINGTONE_SET)||doesSettingEmpty(RINGTONE_SIM2_SET)||doesS
ettingEmpty(VIDEOCALL_SET)||doesSettingEmpty(VIDEOCALL_SIM2_SET))) {
if (TextUtils.isEmpty(mDefaultRingtoneFilename) ||
doesPathHaveFilename(entry.mPath, mDefaultRingtoneFilename)) {
needToSetSettings = true;
isVoiceCall = true; //add this line
/// M: Adds log to debug setting ringtones.
Xlog.v(TAG, "endFile: needToSetRingtone=true.");
}
else if(TextUtils.isEmpty(mDefaultRingtoneSim2Filename) ||
doesPathHaveFilename(entry.mPath, mDefaultRingtoneSim2Filename))
{
needToSetSettings = true;
isSim2Ringtone = true;
isVoiceCall = true; //add this line
Xlog.v(TAG, "endFile: needToSetRingtone=true.sim2 default ringtone");
}
else if(TextUtils.isEmpty(mDefaultVideocallFilename) ||
doesPathHaveFilename(entry.mPath, mDefaultVideocallFilename))
{
needToSetSettings = true;
isVideoCall = true; //add this line
Xlog.v(TAG, "endFile: needToSetRingtone=true.videocall default ringtone");
}
else if(TextUtils.isEmpty(mDefaultVideocallSim2Filename) ||
doesPathHaveFilename(entry.mPath, mDefaultVideocallSim2Filename))
{
needToSetSettings = true;
isSim2VideoCall = true;
isVideoCall = true; //add this line
Xlog.v(TAG, "endFile: needToSetRingtone=true.videocall sim2 default
ringtone");
}
//end modify
} else if (alarms && ((mWasEmptyPriorToScan && !mDefaultAlarmSet) ||
doesSettingEmpty(ALARM_SET))) {
...
}
...
if(needToSetSettings) {
if (notifications && doesSettingEmpty(NOTIFICATION_SET)) {
.....
//start modify
} else if (ringtones &&
(doesSettingEmpty(RINGTONE_SET)||doesSettingEmpty(RINGTONE_SIM2_SET)||does
SettingEmpty(VIDEOCALL_SET)||doesSettingEmpty(VIDEOCALL_SIM2_SET))){
if(isVoiceCall){ //add
if(!isSim2Ringtone)
{
setSettingIfNotSet(Settings.System.RINGTONE, tableUri, rowId);
setSettingIfNotSet(Settings.System.SIP_CALL, tableUri, rowId);
setProfileSettings(RingtoneManager.TYPE_RINGTONE, tableUri, rowId);
setProfileSettings(RingtoneManager.TYPE_SIP_CALL, tableUri, rowId);
mDefaultRingtoneSet = true;
setSettingFlag(RINGTONE_SET);
Xlog.v(TAG, "endFile: set ringtone. uri=" + tableUri + ", rowId=" +
rowId);
}else
{
setSettingIfNotSet(Settings.System.RINGTONE_SIM2, tableUri, rowId);
setProfileSettings(RingtoneManager.TYPE_RINGTONE_SIM2, tableUri, rowId);
mDefaultRingtoneSim2Set = true;
setSettingFlag(RINGTONE_SIM2_SET);
Xlog.v(TAG, "endFile: set sim2 ringtone. uri=" + tableUri + ", rowId=" +
rowId);
}
}
if(isVideoCall){ //add
if(!isSim2VideoCall){
setSettingIfNotSet(Settings.System.VIDEO_CALL, tableUri, rowId);
setProfileSettings(RingtoneManager.TYPE_VIDEO_CALL, tableUri, rowId);
mDefaultVideoCallSet = true;
setSettingFlag(VIDEOCALL_SET);
Xlog.v(TAG, "ddd endFile: set video ringtone. uri=" + tableUri + ",
rowId=" + rowId);
}else{
setSettingIfNotSet(Settings.System.VIDEO_CALL_SIM2, tableUri, rowId);
setProfileSettings(RingtoneManager.TYPE_VIDEO_CALL_SIM2, tableUri, rowId);
mDefaultVideoCallSim2Set = true;
setSettingFlag(VIDEOCALL_SIM2_SET);
Xlog.v(TAG, "ddd endFile: set video sim2 ringtone. uri=" + tableUri + ",
rowId=" + rowId);
}
}
//end modify
}else if (alarms && doesSettingEmpty(ALARM_SET)) {
....
}


4),添加设置sim2铃声,参考//start modify 和//end modify的地方:
private void setProfileSettings(int type, Uri uri, long rowId) {
if(type == RingtoneManager.TYPE_NOTIFICATION) {
setSettingIfNotSet(RingtoneManager.KEY_DEFAULT_NOTIFICATION, uri, rowId);
} else if(type == RingtoneManager.TYPE_RINGTONE) {
setSettingIfNotSet(RingtoneManager.KEY_DEFAULT_RINGTONE, uri, rowId);
//start modify
} else if(type ==RingtoneManager.TYPE_RINGTONE_SIM2){
setSettingIfNotSet(RingtoneManager.KEY_DEFAULT_RINGTONE_SIM2, uri, rowId);
//end modify
} else if(type == RingtoneManager.TYPE_VIDEO_CALL) {
setSettingIfNotSet(RingtoneManager.KEY_DEFAULT_VIDEO_CALL, uri, rowId);
//start modify
} else if(type ==RingtoneManager.TYPE_VIDEO_CALL_SIM2){
setSettingIfNotSet(RingtoneManager.KEY_DEFAULT_VIDEO_CALL_SIM2, uri,
rowId);
//end modify
} else if(type == RingtoneManager.TYPE_SIP_CALL) {
setSettingIfNotSet(RingtoneManager.KEY_DEFAULT_SIP_CALL, uri, rowId);
} else if(type == RingtoneManager.TYPE_ALARM) {
setSettingIfNotSet(RingtoneManager.KEY_DEFAULT_ALARM, uri, rowId);
}
}
本文只有部分内容,如需阅读完整资料,请点击MT6735 http://bbs.16rd.com/thread-454783-1-1.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值