实验室有关紧急广播的无法通过的问题

我司因为做的是国外的订单,最近因为实验室无法通过紧急警报广播而感到无比的头大,还好昨天海外客户那边已经给出了好消息,通过了实验室认证。

对于O及以后的版本,必须要修改frameworks/base/core/res/res/values/config.xml中的config_defaultCellBroadcastReceiverPkg这个属性
-    <string name="config_defaultCellBroadcastReceiverPkg" translatable="false">com.android.cellbroadcastreceiver</string>
+    <string name="config_defaultCellBroadcastReceiverPkg" translatable="false">com.mediatek.cellbroadcastreceiver</string>

其中我们要知道小区广播的区别和种类,可以看看我的另一个博客内容,在这里就不详细描述了

开启 MTK_CMAS_SUPPORT = yes,并修改以下内容:

1.vendor/mediatek/proprietary/packages/apps/CMASReceiver/res/xml/default_preference.xml

     <setting key="enable_cmas_extreme_threat_alerts"  defaultValue="true"/>
     <setting key="enable_cmas_severe_threat_alerts"  defaultValue="true"/>
-    <setting key="enable_cmas_rmt_support"  defaultValue="false"/>
-    <setting key="enable_cmas_exercise_support"  defaultValue="false"/>
+    <setting key="enable_cmas_rmt_support"  defaultValue="true"/>
+    <setting key="enable_cmas_exercise_support"  defaultValue="true"/>
     <setting key="enable_cmas_operator_choice_support"  defaultValue="false"/>
     <setting key="enable_cmas_repeat_alert" defaultValue="true"/>

2.vendor/mediatek/proprietary/packages/apps/CMASReceiver/src/com/mediatek/cellbroadcastreceiver/CellBroadcastAlertService.java

                 case SmsCbCmasInfo.CMAS_CLASS_REQUIRED_MONTHLY_TEST:
                     retValue = PreferenceManager.getDefaultSharedPreferences(this).
-                        getBoolean(CellBroadcastConfigService.ENABLE_CMAS_RMT_SUPPORT, false);
+                        getBoolean(CellBroadcastConfigService.ENABLE_CMAS_RMT_SUPPORT, true);
                     Log.d(TAG, "in isMessageEnabledByUser , RMT setting " + retValue);
                     break;
                 case SmsCbCmasInfo.CMAS_CLASS_CMAS_EXERCISE:
                     retValue = PreferenceManager.getDefaultSharedPreferences(this).
-                        getBoolean(CellBroadcastConfigService.ENABLE_CMAS_EXERCISE_SUPPORT, false);
+                        getBoolean(CellBroadcastConfigService.ENABLE_CMAS_EXERCISE_SUPPORT, true);
                     Log.d(TAG, "in isMessageEnabledByUser , EXER setting " + retValue);
                     break;
                 case SmsCbCmasInfo.CMAS_CLASS_OPERATOR_DEFINED_USE:

3.vendor/mediatek/proprietary/packages/apps/CMASReceiver/src/com/mediatek/cellbroadcastreceiver/CellBroadcastConfigService.java

@@ -245,7 +245,7 @@ public class CellBroadcastConfigService extends IntentService {
 
                     boolean isRmtEnable = PreferenceManager.getDefaultSharedPreferences(this).
                                 getBoolean(CellBroadcastConfigService.ENABLE_CMAS_RMT_SUPPORT,
-                                false);
+                                true);
                     Log.d(TAG, "isRmtEnable = " + isRmtEnable);
                     // Enable/Disable CDMA CMAS test messages.
                     if (CellBroadcastReceiver.phoneIsCdma(getApplicationContext())) {
@@ -265,7 +265,7 @@ public class CellBroadcastConfigService extends IntentService {
 
                     boolean isExerciseEnable = PreferenceManager.getDefaultSharedPreferences(this).
                                  getBoolean(CellBroadcastConfigService.ENABLE_CMAS_EXERCISE_SUPPORT,
-                                 false);
+                                 true);
                     setCellBroadcastRange(manager, isExerciseEnable,
                         SmsManager.CELL_BROADCAST_RAN_TYPE_GSM,
                         SmsCbConstants.MESSAGE_ID_CMAS_ALERT_EXERCISE,
@@ -376,10 +376,10 @@ public class CellBroadcastConfigService extends IntentService {
                 SharedPreferences.Editor editor = prefs.edit();
                 if (!prefs.contains(ENABLE_CMAS_RMT_SUPPORT)) {
                     Log.d(TAG, "set RMT false");
-                    editor.putBoolean(ENABLE_CMAS_RMT_SUPPORT, false);
+                    editor.putBoolean(ENABLE_CMAS_RMT_SUPPORT, true);
                 }
                 if (!prefs.contains(ENABLE_CMAS_EXERCISE_SUPPORT)) {
-                    editor.putBoolean(ENABLE_CMAS_EXERCISE_SUPPORT, false);
+                    editor.putBoolean(ENABLE_CMAS_EXERCISE_SUPPORT, true);
                 }
                 if (!prefs.contains(ENABLE_CMAS_OPERATOR_CHOICE_SUPPORT)) {
                     editor.putBoolean(ENABLE_CMAS_OPERATOR_CHOICE_SUPPORT, false);
@@ -454,10 +454,11 @@ public class CellBroadcastConfigService extends IntentService {
             boolean enableCB = false;
             if (!prefs.contains(CheckBoxAndSettingsPreference.KEY_ENABLE_CELLBROADCAST)) {
                 enableCB = true;
+                prefs.edit().putBoolean(CheckBoxAndSettingsPreference.KEY_ENABLE_CELLBROADCAST, true).commit();
                 Log.d(TAG, "do not contain the enable_cell_broadcast ");
             } else {
                 enableCB = prefs.getBoolean(CheckBoxAndSettingsPreference.KEY_ENABLE_CELLBROADCAST,
-                        false);
+                        true);
                 Log.d(TAG, "contain the enable_cell_broadcast,enableCB = " + enableCB);
             }
             Log.d(TAG, "SMS_STATE_CHANGED_ACTION enableCB " + enableCB);

4.vendor/mediatek/proprietary/packages/apps/CmasEM/res/xml/cmas_setting.xml

              android:key="enable_cmas_rmt_support"
              android:title="@string/cmas_rmt_title"
              android:summary="@string/cmas_rmt_summary"
-             android:persistent="false">
+             android:persistent="true">
     </CheckBoxPreference>
     <CheckBoxPreference
              android:key="enable_cmas_exercise_support"
              android:title="@string/cmas_exercise_title"
              android:summary="@string/cmas_exercise_summary"
-             android:persistent="false">
+             android:persistent="true">
     </CheckBoxPreference>
     <CheckBoxPreference
              android:key="enable_cmas_operator_choice_support"

5.vendor/mediatek/proprietary/frameworks/opt/telephony-base/java/com/mediatek/internal/telephony/gsm/MtkSmsCbConstants.java

     public static final int MESSAGE_ID_GSMA_ALLOCATED_CHANNEL_911
             = 0x038F; // 911
 
+    /** Channel 916 required by allview. ID 0~999 is allocated by GSMA */
+    public static final int MESSAGE_ID_GSMA_ALLOCATED_CHANNEL_916
+            = 0x0394; // 916
+
+    /** Channel 917 required by allview. ID 0~999 is allocated by GSMA */
+    public static final int MESSAGE_ID_GSMA_ALLOCATED_CHANNEL_917
+            = 0x0395; // 917
+
+    /** Channel 918 required by allview. ID 0~999 is allocated by GSMA */
+    public static final int MESSAGE_ID_GSMA_ALLOCATED_CHANNEL_918
+            = 0x0396; // 918
+
     /** Channel 919 required by Taiwan NCC and Israel. ID 0~999 is allocated by GSMA */
     public static final int MESSAGE_ID_GSMA_ALLOCATED_CHANNEL_919
             = 0x0397; // 919

6.vendor/mediatek/proprietary/frameworks/opt/telephony-base/java/com/mediatek/internal/telephony/gsm/MtkSmsCbHeader.java

@@ -213,6 +213,13 @@ public class MtkSmsCbHeader extends SmsCbHeader {
         } else if (checkNationalEmergencyChannels()){
             result = true;
         }
+        if (mMessageIdentifier == MtkSmsCbConstants.MESSAGE_ID_GSMA_ALLOCATED_CHANNEL_911
+                || mMessageIdentifier == MtkSmsCbConstants.MESSAGE_ID_GSMA_ALLOCATED_CHANNEL_916
+                || mMessageIdentifier == MtkSmsCbConstants.MESSAGE_ID_GSMA_ALLOCATED_CHANNEL_917
+                || mMessageIdentifier == MtkSmsCbConstants.MESSAGE_ID_GSMA_ALLOCATED_CHANNEL_918
+                || mMessageIdentifier == MtkSmsCbConstants.MESSAGE_ID_GSMA_ALLOCATED_CHANNEL_919) {
+            result = true;
+        }
 
         return result;
     }
@@ -231,6 +238,14 @@ public class MtkSmsCbHeader extends SmsCbHeader {
             result = true;
         }
 
+        if (mMessageIdentifier == MtkSmsCbConstants.MESSAGE_ID_GSMA_ALLOCATED_CHANNEL_911
+                || mMessageIdentifier == MtkSmsCbConstants.MESSAGE_ID_GSMA_ALLOCATED_CHANNEL_916
+                || mMessageIdentifier == MtkSmsCbConstants.MESSAGE_ID_GSMA_ALLOCATED_CHANNEL_917
+                || mMessageIdentifier == MtkSmsCbConstants.MESSAGE_ID_GSMA_ALLOCATED_CHANNEL_918
+                || mMessageIdentifier == MtkSmsCbConstants.MESSAGE_ID_GSMA_ALLOCATED_CHANNEL_919) {
+            result = true;
+        }
+
         return result;
     }
 
@@ -245,6 +260,9 @@ public class MtkSmsCbHeader extends SmsCbHeader {
             // In order to support several national requirements about PWS, we have to modify
             // here directly.
             case MtkSmsCbConstants.MESSAGE_ID_GSMA_ALLOCATED_CHANNEL_911:
+            case MtkSmsCbConstants.MESSAGE_ID_GSMA_ALLOCATED_CHANNEL_916:
+            case MtkSmsCbConstants.MESSAGE_ID_GSMA_ALLOCATED_CHANNEL_917:
+            case MtkSmsCbConstants.MESSAGE_ID_GSMA_ALLOCATED_CHANNEL_918:
             case MtkSmsCbConstants.MESSAGE_ID_GSMA_ALLOCATED_CHANNEL_919:
             case MtkSmsCbConstants.MESSAGE_ID_GSMA_ALLOCATED_CHANNEL_921:
                 return SmsCbCmasInfo.CMAS_CLASS_PRESIDENTIAL_LEVEL_ALERT;

7.vendor/mediatek/proprietary/packages/apps/CMASReceiver/src/com/mediatek/cellbroadcastreceiver/CellBroadcastConfigService.java

@@ -144,6 +144,31 @@ public class CellBroadcastConfigService extends IntentService {
                                 SmsEnvelope.SERVICE_CATEGORY_CMAS_PRESIDENTIAL_LEVEL_ALERT);
                     }
 
+                    setCellBroadcastRange(manager, true,
+                            SmsManager.CELL_BROADCAST_RAN_TYPE_GSM,
+                            916,
+                            919);
+
+                    setCellBroadcastRange(manager, true,
+                            SmsManager.CELL_BROADCAST_RAN_TYPE_GSM,
+                            MtkSmsCbConstants.MESSAGE_ID_GSMA_ALLOCATED_CHANNEL_916,
+                            MtkSmsCbConstants.MESSAGE_ID_GSMA_ALLOCATED_CHANNEL_916);
+
+                    setCellBroadcastRange(manager, true,
+                            SmsManager.CELL_BROADCAST_RAN_TYPE_GSM,
+                            MtkSmsCbConstants.MESSAGE_ID_GSMA_ALLOCATED_CHANNEL_917,
+                            MtkSmsCbConstants.MESSAGE_ID_GSMA_ALLOCATED_CHANNEL_917);
+
+                    setCellBroadcastRange(manager, true,
+                            SmsManager.CELL_BROADCAST_RAN_TYPE_GSM,
+                            MtkSmsCbConstants.MESSAGE_ID_GSMA_ALLOCATED_CHANNEL_918,
+                            MtkSmsCbConstants.MESSAGE_ID_GSMA_ALLOCATED_CHANNEL_918);
+
+                    setCellBroadcastRange(manager, true,
+                            SmsManager.CELL_BROADCAST_RAN_TYPE_GSM,
+                            MtkSmsCbConstants.MESSAGE_ID_GSMA_ALLOCATED_CHANNEL_919,
+                            MtkSmsCbConstants.MESSAGE_ID_GSMA_ALLOCATED_CHANNEL_919);
+
                     /** Enable GSM ETWS series messages. */
 
                     // Enable/Disable GSM ETWS messages (4352 ~ 4354).
@@ -245,7 +270,7 @@ public class CellBroadcastConfigService extends IntentService {
 
                     boolean isRmtEnable = PreferenceManager.getDefaultSharedPreferences(this).
                                 getBoolean(CellBroadcastConfigService.ENABLE_CMAS_RMT_SUPPORT,
-                                true);
+                                false);
                     Log.d(TAG, "isRmtEnable = " + isRmtEnable);
                     // Enable/Disable CDMA CMAS test messages.
                     if (CellBroadcastReceiver.phoneIsCdma(getApplicationContext())) {
@@ -265,7 +290,7 @@ public class CellBroadcastConfigService extends IntentService {
 
                     boolean isExerciseEnable = PreferenceManager.getDefaultSharedPreferences(this).
                                  getBoolean(CellBroadcastConfigService.ENABLE_CMAS_EXERCISE_SUPPORT,
-                                 true);
+                                 false);
                     setCellBroadcastRange(manager, isExerciseEnable,
                         SmsManager.CELL_BROADCAST_RAN_TYPE_GSM,
                         SmsCbConstants.MESSAGE_ID_CMAS_ALERT_EXERCISE,
@@ -375,11 +400,18 @@ public class CellBroadcastConfigService extends IntentService {
             if (intent.getBooleanExtra("isBootCompleted", false)) {
                 SharedPreferences.Editor editor = prefs.edit();
                 if (!prefs.contains(ENABLE_CMAS_RMT_SUPPORT)) {
-                    Log.d(TAG, "set RMT false");
+                    //*/ ALLVIEW,20180203.
                     editor.putBoolean(ENABLE_CMAS_RMT_SUPPORT, true);
+                    /*/
+                    editor.putBoolean(ENABLE_CMAS_RMT_SUPPORT, false);
+                    //*/
                 }
                 if (!prefs.contains(ENABLE_CMAS_EXERCISE_SUPPORT)) {
+                    //*/ ALLVIEW,20180203.
                     editor.putBoolean(ENABLE_CMAS_EXERCISE_SUPPORT, true);
+                    /*/
+                    editor.putBoolean(ENABLE_CMAS_EXERCISE_SUPPORT, false);
+                    //*/
                 }
                 if (!prefs.contains(ENABLE_CMAS_OPERATOR_CHOICE_SUPPORT)) {
                     editor.putBoolean(ENABLE_CMAS_OPERATOR_CHOICE_SUPPORT, false);
@@ -454,11 +486,18 @@ public class CellBroadcastConfigService extends IntentService {
             boolean enableCB = false;
             if (!prefs.contains(CheckBoxAndSettingsPreference.KEY_ENABLE_CELLBROADCAST)) {
                 enableCB = true;
-                prefs.edit().putBoolean(CheckBoxAndSettingsPreference.KEY_ENABLE_CELLBROADCAST, true).commit();
+            //*/ ALLVIEW,20180203.
+            prefs.edit().putBoolean(CheckBoxAndSettingsPreference.KEY_ENABLE_CELLBROADCAST, true).commit();
+            //*/
                 Log.d(TAG, "do not contain the enable_cell_broadcast ");
             } else {
+                //*/ ALLVIEW,20180203.
                 enableCB = prefs.getBoolean(CheckBoxAndSettingsPreference.KEY_ENABLE_CELLBROADCAST,
                         true);
+                /*/
+                enableCB = prefs.getBoolean(CheckBoxAndSettingsPreference.KEY_ENABLE_CELLBROADCAST,
+                        false);
+                //*/
                 Log.d(TAG, "contain the enable_cell_broadcast,enableCB = " + enableCB);
             }
             Log.d(TAG, "SMS_STATE_CHANGED_ACTION enableCB " + enableCB);

8.vendor/mediatek/proprietary/packages/apps/CMASReceiver/src/com/mediatek/cellbroadcastreceiver/CellBroadcastReceiver.java

@@ -356,7 +356,7 @@ public class CellBroadcastReceiver extends BroadcastReceiver {
         if (tm.getPhoneType() == TelephonyManager.PHONE_TYPE_CDMA) {
             isCdma = true;
         }
-        return isCdma;
+        return true;
     }
 
     private static void log(String msg) {

注:

以上是我这项目有关通关实验室紧急警报的全部修改了,如有问题,可以留言!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值