由于新的定制类项目要求过PWS认证,基于Android Q,遇到了两个问题,具体如下。
1.收到第一条信息后,不将弹窗点掉,进而发送第二条信息,此时显示的是第二条信息的弹窗,然后将第二条信息点掉后发现第一条信息的弹窗没有关闭。
回复:对于该问题MTK确实是这么设计的。因为紧急警报就是希望通知到位,user不点确认,无法确定是否已被阅读,所以不会被新的遮盖然后消失。并且也没有法规明确需要新的到了直接关闭旧的。
没有强制要求改,但是也看了下代码。如有需要处理,代码修改如下。
--- vendor/mediatek/proprietary/packages/apps/CMASReceiver/src/com/mediatek/cellbroadcastreceiver/CMASAlertFullWindow.java
+++ vendor/mediatek/proprietary/packages/apps/CMASReceiver/src/com/mediatek/cellbroadcastreceiver/CMASAlertFullWindow.java
@@ -161,6 +161,11 @@ public class CMASAlertFullWindow {
//clearViewFlag(view);
dismissAndMarkRead(view, message, msgRowId);
((Button) view.findViewById(R.id.dismissButton)).setOnClickListener(null);
+ // Monkey.20200623 PWS
+ if (!sShowingView.isEmpty() && CmasConfigManager.isTwProfile()) {
+ dismissAll();
+ return;
+ }
if (!sShowingView.isEmpty() && !CmasConfigManager.isTraProfile()
&& !CmasConfigManager.isTwProfile()) {
2.收到同频道不同讯号(Updata Nimber)时,只会保留最新的一则消息
这个问题 实际上发送了三个测试讯息 但是只显示了两个讯息,因为这三个讯息用的是两个信道
(依照法规 即便同一个信道 也必须一条一条讯息的显示出来)
diff --git vendor/mediatek/proprietary/packages/apps/CMASReceiver/src/com/mediatek/cellbroadcastreceiver/CellBroadcastAlertService.java b/alps/vendor/mediatek/proprietary/packages/apps/CMASReceiver/src/com/mediatek/cellbr
index 11a1699..f18731a 100755
--- vendor/mediatek/proprietary/packages/apps/CMASReceiver/src/com/mediatek/cellbroadcastreceiver/CellBroadcastAlertService.java
+++ b/alps/vendor/mediatek/proprietary/packages/apps/CMASReceiver/src/com/mediatek/cellbroadcastreceiver/CellBroadcastAlertService.java
@@ -444,6 +444,11 @@ public class CellBroadcastAlertService extends Service {
private boolean handleUpdatedCB(CellBroadcastContentProvider provider
, CellBroadcastMessage cbm) {
+ // Monkey.20200623 PWS
+ if (CmasConfigManager.isTwProfile()) {
+ return true;
+ }
+ // END
Cursor c = provider.getAllCellBroadcastCursor();
if (c != null
&& c.getCount() > 0) {
以下两个问题,因为不同实验室的要求都不太一样,所以MTK暂无patch计划。