Added CMAS monthly test additional language messages support.
Added CMAS monthly test additional language messages support if
the SIM or current network's country is Taiwan. Allowing
users to turn on/off through
Settings->More->Emergency broadcasts->Show CMAS test broadcasts
(This hidden menu is only shown when Developer options is turned on).
bug: 23892625
Change-Id: I2433abd3b747acb2d3e62d506119f406c7317975
diff --git a/src/com/android/cellbroadcastreceiver/CellBroadcastConfigService.java b/src/com/android/cellbroadcastreceiver/CellBroadcastConfigService.java
index 09b56ef..fd5daf9 100644
--- a/src/com/android/cellbroadcastreceiver/CellBroadcastConfigService.java
+++ b/src/com/android/cellbroadcastreceiver/CellBroadcastConfigService.java
@@ -209,8 +209,12 @@
int cmasAmber = SmsCbConstants.MESSAGE_ID_CMAS_ALERT_CHILD_ABDUCTION_EMERGENCY;
int cmasTestStart = SmsCbConstants.MESSAGE_ID_CMAS_ALERT_REQUIRED_MONTHLY_TEST;
int cmasTestEnd = SmsCbConstants.MESSAGE_ID_CMAS_ALERT_OPERATOR_DEFINED_USE;
+ int cmasTestLanguageStart =
+ SmsCbConstants.MESSAGE_ID_CMAS_ALERT_REQUIRED_MONTHLY_TEST_LANGUAGE;
+ int cmasTestLanguageEnd =
+ SmsCbConstants.MESSAGE_ID_CMAS_ALERT_OPERATOR_DEFINED_USE_LANGUAGE;
int cmasPresident = SmsCbConstants.MESSAGE_ID_CMAS_ALERT_PRESIDENTIAL_LEVEL;
- int cmasTaiwanPWS =
+ int cmasPresidentLanguage =
SmsCbConstants.MESSAGE_ID_CMAS_ALERT_PRESIDENTIAL_LEVEL_LANGUAGE;
// set to CDMA broadcast ID rage if phone is in CDMA mode.
@@ -269,16 +273,15 @@
manager.enableCellBroadcast(
SmsEnvelope.SERVICE_CATEGORY_CMAS_TEST_MESSAGE,
SmsManager.CELL_BROADCAST_RAN_TYPE_CDMA);
+ if ("tw".equals(tm.getSimCountryIso()) ||
+ "tw".equals(tm.getNetworkCountryIso())) {
+ if (DBG) log("enabling channels 4393-4395 for Taiwan");
+
+ manager.enableCellBroadcastRange(
+ cmasTestLanguageStart, cmasTestLanguageEnd,
+ SmsManager.CELL_BROADCAST_RAN_TYPE_GSM);
+ }
}
- // CMAS Presidential must be on (See 3GPP TS 22.268 Section 6.2).
- manager.enableCellBroadcast(cmasPresident,
- SmsManager.CELL_BROADCAST_RAN_TYPE_GSM);
- manager.enableCellBroadcast(
- SmsEnvelope.SERVICE_CATEGORY_CMAS_PRESIDENTIAL_LEVEL_ALERT,
- SmsManager.CELL_BROADCAST_RAN_TYPE_CDMA);
- // register Taiwan PWS 4383 also, by default
- manager.enableCellBroadcast(cmasTaiwanPWS,
- SmsManager.CELL_BROADCAST_RAN_TYPE_GSM);
}
if (DBG) log("enabled emergency cell broadcast channels");
} else {
@@ -321,19 +324,25 @@
manager.disableCellBroadcast(
SmsEnvelope.SERVICE_CATEGORY_CMAS_TEST_MESSAGE,
SmsManager.CELL_BROADCAST_RAN_TYPE_CDMA);
- // CMAS Presidential must be on (See 3GPP TS 22.268 Section 6.2).
- manager.enableCellBroadcast(cmasPresident,
- SmsManager.CELL_BROADCAST_RAN_TYPE_GSM);
- manager.enableCellBroadcast(
- SmsEnvelope.SERVICE_CATEGORY_CMAS_PRESIDENTIAL_LEVEL_ALERT,
- SmsManager.CELL_BROADCAST_RAN_TYPE_CDMA);
- // register Taiwan PWS 4383 also, by default
- manager.enableCellBroadcast(cmasTaiwanPWS,
- SmsManager.CELL_BROADCAST_RAN_TYPE_GSM);
+
}
if (DBG) log("disabled emergency cell broadcast channels");
}
+ // CMAS Presidential must be on (See 3GPP TS 22.268 Section 6.2).
+ manager.enableCellBroadcast(cmasPresident,
+ SmsManager.CELL_BROADCAST_RAN_TYPE_GSM);
+ manager.enableCellBroadcast(
+ SmsEnvelope.SERVICE_CATEGORY_CMAS_PRESIDENTIAL_LEVEL_ALERT,
+ SmsManager.CELL_BROADCAST_RAN_TYPE_CDMA);
+
+ // CMAS Presidential additional language must be on per Taiwan regulation.
+ // Technical Specifications of the Telecommunications Land Mobile 10 (PLMN10)
+ // 5.14.2.3 Channel 4383 shows public warning messages in English and shall not
+ // be turned off.
+ manager.enableCellBroadcast(cmasPresidentLanguage,
+ SmsManager.CELL_BROADCAST_RAN_TYPE_GSM);
+
if (enableChannel50Alerts) {
if (DBG) log("enabling cell broadcast channel 50");
manager.enableCellBroadcast(50, SmsManager.CELL_BROADCAST_RAN_TYPE_GSM);
@@ -391,6 +400,14 @@
SmsManager.CELL_BROADCAST_RAN_TYPE_GSM);
manager.disableCellBroadcast(SmsEnvelope.SERVICE_CATEGORY_CMAS_TEST_MESSAGE,
SmsManager.CELL_BROADCAST_RAN_TYPE_CDMA);
+ if ("tw".equals(tm.getSimCountryIso()) ||
+ "tw".equals(tm.getNetworkCountryIso())) {
+ if (DBG) log("disabling channels 4393-4395 for Taiwan");
+
+ manager.disableCellBroadcastRange(
+ cmasTestLanguageStart, cmasTestLanguageEnd,
+ SmsManager.CELL_BROADCAST_RAN_TYPE_GSM);
+ }
}
} catch (Exception ex) {
Log.e(TAG, "exception enabling cell broadcast channels", ex);