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, 20191114, 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, 20191114, 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, 20191119, 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, 20191119, 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

发布了31 篇原创文章 · 获赞 6 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/u012824529/article/details/103777569