1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Android Q Default Ringtone 客制化SKUID默认来电铃声/通知铃声配置

Android Q Default Ringtone 客制化SKUID默认来电铃声/通知铃声配置

时间:2022-09-22 00:00:37

相关推荐

Android Q Default Ringtone 客制化SKUID默认来电铃声/通知铃声配置

在Android Q以前,我们配置默认铃声时是在/frameworks/base/media/java/android/media/MediaScanner.java

如我之前的几笔提交:

Change-Id: I21cd1b402952c683bc51a6d53c5c4181459adcc6

Change-Id: Ic9348f78d7f3635ede7d2e857ccb481ccdff9f9e

Change-Id: I0489ae3e98bdc46c919880a52d7c29eb9432f9b1

Change-Id: I024aaa63cea33601eb8b4198f03dad8b9bd276ed

Change-Id: I8602ba5bb0257841c92ae16a996cda6e8de88767

但是在某MTK的Q升级项目中做一个AMX定制需求[AMX] Tone Customization(当SKUID为600CLA时需要增加InstitucionalRubrica.mp3铃声并配置为默认的来电,短信,彩信铃声)

Change-Id: Ifde79c5a68505738d7ad1bc55cb56c36bc2e6ef9

Change-Id: I23e57aa466dbaac34e3c95f6b53b6768c5b6283c

发现在/frameworks/base/media/java/android/media/MediaScanner.java配置不起效果,且无logcat输出:

private void setDefaultRingtoneFileNames() {

//+add, 1114, for claro default ringtone

mSkuId = SystemProperties.get("ro.boot.skuid");

String productDevice = SystemProperties.get("ro.product.device", "0");

Log.v(TAG, "chentest mSkuId=" + mSkuId + " productDevice=" + productDevice);

if (this.mSkuId != null && this.mSkuId.equals("600CLA") && "DRX".equals(productDevice)) {

mDefaultRingtoneFilename = CLA_DEF_RINGTONE;

mDefaultRingtone2Filename = CLA_DEF_RINGTONE;

mDefaultNotificationFilename = CLA_DEF_RINGTONE;

Log.v(TAG, "chentest DRX 600CLA mDefaultRingtoneFilename=" + mDefaultRingtoneFilename

+ " mDefaultRingtone2Filename=" + mDefaultRingtone2Filename

+ " mDefaultNotificationFilename=" + mDefaultNotificationFilename);

}else{

mDefaultRingtoneFilename = SystemProperties.get(DEFAULT_RINGTONE_PROPERTY_PREFIX

+ Settings.System.RINGTONE);

mDefaultNotificationFilename = SystemProperties.get(DEFAULT_RINGTONE_PROPERTY_PREFIX

+ Settings.System.NOTIFICATION_SOUND);

mDefaultRingtone2Filename = SystemProperties.get(DEFAULT_RINGTONE_PROPERTY_PREFIX

+ Settings.System.RINGTONE_SIM2);

}

//- add, 1114, for claro default ringtone

mDefaultAlarmAlertFilename = SystemProperties.get(DEFAULT_RINGTONE_PROPERTY_PREFIX

+ Settings.System.ALARM_ALERT);

Log.v(TAG, "chentest [setDefaultRingtoneFileNames] mDefaultRingtoneFilename=" + mDefaultRingtoneFilename

+ " mDefaultRingtone2Filename=" + mDefaultRingtone2Filename

+ " mDefaultNotificationFilename=" + mDefaultNotificationFilename

+ " mDefaultAlarmAlertFilename=" + mDefaultAlarmAlertFilename);

}

发现在packages/providers/MediaProvider/src/com/android/providers/media/MediaService.java中配置即可生效

private static String getDefaultRingtoneFilename(int type) {

//add, 1119, for claro default ringtone

switch (type) {

case TYPE_RINGTONE:

if (isDRXCLA()) {

Log.v(TAG,"[getDefaultRingtoneFilename] DRX CLA TYPE_RINGTONE is InstitucionalRubrica.mp3");

return "InstitucionalRubrica.mp3";

} else {

return SystemProperties.get("ro.config.ringtone");

}

case TYPE_RINGTONE_SIM2:

if (isDRXCLA()) {

Log.v(TAG,"[getDefaultRingtoneFilename] DRX CLA TYPE_RINGTONE_SIM2 is InstitucionalRubrica.mp3");

return "InstitucionalRubrica.mp3";

} else {

return SystemProperties.get("ro.config.ringtone_sim2");

}

case TYPE_NOTIFICATION:

if (isDRXCLA()) {

Log.v(TAG,"[getDefaultRingtoneFilename] DRX CLA TYPE_NOTIFICATION is InstitucionalRubrica.mp3");

return "InstitucionalRubrica.mp3";

} else {

return SystemProperties.get("ro.config.notification_sound");

}

case TYPE_ALARM: return SystemProperties.get("ro.config.alarm_alert");

default: throw new IllegalArgumentException();

}

}

/*

* add, 1119, for claro default ringtone

* return if DRX project && CLA skuid

*/

private static boolean isDRXCLA() {

String mSkuId = SystemProperties.get("ro.boot.skuid");

String productDevice = SystemProperties.get("ro.product.device", "0");

Log.v(TAG,"[isDRXCLA] mSkuId="+mSkuId+", productDevice="+productDevice);

if("600CLA".equals(mSkuId) && "DRX".equals(productDevice)) {

return true;

}

return false;

}

即当SKUID为600CLA,项目为DRX时,将铃声,通知的默认音改为InstitucionalRubrica.mp3

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。