国内过CTA认证时,要求打开日历时提示联系人权限确认,这里所说的联系人权限不是系统默认赋予的权限提示,而是需要新加一个权限提示内容,让用户进行确认。

平台:Android P(9.0)

修改代码如下:

vendor/mediatek/proprietary/packages/apps/Calendar/res/values-zh-rCN/strings.xml

--- a/alps/vendor/mediatek/proprietary/packages/apps/Calendar/res/values-zh-rCN/strings.xml
+++ b/alps/vendor/mediatek/proprietary/packages/apps/Calendar/res/values-zh-rCN/strings.xml
@@ -280,4 +280,11 @@<string name="monthly_on_day_count">"每月(每月的<xliff:g id="ORDINAL_NUMBER">%1$s</xliff:g><xliff:g id="DAY_OF_WEEK">%2$s</xliff:g>)"</string>
+       <!-- CTA Monkey.20200410 -->
+       <string name="confirm_dialog_msg">"日历会尝试取得您的联系人权限以供功能正常运行"</string>
+       <string name="confirm_dialog_allow_button">"允许"</string>
+       <string name="confirm_dialog_deny_button">"拒绝"</string>
+       <string name="deny_toast_msg">"读取联系人权限失败,拒绝访问日历"</string>
+       <!-- END --></resources>

vendor/mediatek/proprietary/packages/apps/Calendar/src/com/android/calendar/AllInOneActivity.java

--- a/alps/vendor/mediatek/proprietary/packages/apps/Calendar/src/com/android/calendar/AllInOneActivity.java
+++ b/alps/vendor/mediatek/proprietary/packages/apps/Calendar/src/com/android/calendar/AllInOneActivity.java
@@ -95,6 +95,12 @@ import java.util.TimeZone;import java.util.Arrays;import java.util.ArrayList;+//Monkey.20200410 CTA
+import android.app.AlertDialog;
+import android.app.Dialog;
+import android.content.DialogInterface;
+//END
+import static android.provider.CalendarContract.Attendees.ATTENDEE_STATUS;import static android.provider.CalendarContract.EXTRA_EVENT_ALL_DAY;import static android.provider.CalendarContract.EXTRA_EVENT_BEGIN_TIME;
@@ -116,6 +122,11 @@ public class AllInOneActivity extends AbstractCalendarActivity implements EventH// @}private static final int HANDLER_KEY = 0;private static float mScale = 0;
+
+       //Monkey.20200410 CTA
+       private final String CALENDAR_CONFIRM_PREF_NAME = "ConfirmPrefFile";
+       private final String CONFIRM_VALUE_KEY = "mtk_calendar_confirmed";
+       //END// Indices of buttons for the drop down menu (tabs replacement)// Must match the strings in the array buttons_list in arrays.xml and the
@@ -634,6 +645,10 @@ public class AllInOneActivity extends AbstractCalendarActivity implements EventH"AllInOneActivity.onCreate.restoreState");mBundleIcicleOncreate = icicle;
+
+               //Monkey.20200410 CTA
+               buildAndShowConfirmDialog();
+               //ENDif (!checkAndRequestPermission(CALENDAR_ONCREATE_PERMISSIONS_REQUEST_CODE)){
@@ -1878,4 +1893,48 @@ public class AllInOneActivity extends AbstractCalendarActivity implements EventHmSearchMenu.expandActionView();}}
+
+       /**
+        * Monkey.20200410
+        * CTA Dialog
+        */
+       private void setConfirmed() {
+          SharedPreferences settings = getSharedPreferences(CALENDAR_CONFIRM_PREF_NAME, 0);
+          SharedPreferences.Editor editor = settings.edit();
+          editor.putBoolean(CONFIRM_VALUE_KEY, true);
+          editor.commit();
+       }
+
+       private boolean getConfirmed() {
+          SharedPreferences settings = getSharedPreferences(CALENDAR_CONFIRM_PREF_NAME, 0);
+          return settings.getBoolean(CONFIRM_VALUE_KEY, false);
+       }
+
+       private void buildAndShowConfirmDialog() {
+          if (!getConfirmed()) {
+                  Log.d(TAG, "buildAndShowConfirmDialog()");
+                  Dialog dialog = new AlertDialog.Builder(this)
+                          .setMessage(R.string.confirm_dialog_msg)
+                          .setPositiveButton(R.string.confirm_dialog_allow_button,
+                                          new DialogInterface.OnClickListener() {
+                                                  public void onClick(DialogInterface dialog, int whichButton) {
+                                                               setConfirmed();
+                                                  }
+                                          })
+                          .setNegativeButton(R.string.confirm_dialog_deny_button,
+                                          new DialogInterface.OnClickListener() {
+                                                  public void onClick(DialogInterface dialog, int whichButton) {
+                                                          Toast toast = Toast.makeText(getApplicationContext(), R.string.deny_toast_msg,
+                                                                  Toast.LENGTH_LONG);
+                                                          toast.show();
+                                                          finish();
+                                                  }
+                                          })
+                  .create();
+                  dialog.setCanceledOnTouchOutside(false);
+                  dialog.setCancelable(false);
+                  dialog.show();
+          }
+    }}

【CTA】CTA认证要求打开日历时提示联系人权限确认相关推荐

  1. win10计算机怎么开权限访问不了,手把手教您win10系统打开共享文件时提示没有权限的教程...

    今天和大家分享一下win10系统打开共享文件时提示没有权限问题的解决方法,在使用win10系统的过程中经常不知道如何去解决win10系统打开共享文件时提示没有权限的问题,有什么好的办法去解决win10 ...

  2. 创建或打开解决方案时提示“DotNetCore.1.0.1-SDK.1.0.0.Preview2-003131-x86“错误的解决方案

    创建或打开解决方案时提示"DotNetCore.1.0.1-SDK.1.0.0.Preview2-003131-x86"错误的解决方案 参考文章: (1)创建或打开解决方案时提示& ...

  3. php怎么关联默认打开程序,win10系统打开文件时提示“请在默认程序控制面板中创建关联”如何解决...

    近日有win10系统用户反映说在打开文件的时候,突然遇到了"请在默认程序控制面板中创建关联"的提示,导致无法打开文件,这该怎么办呢,本教程就给大家带来win10系统打开文件时提示& ...

  4. 打开access文件 提示文件名无效_分享在PS软件打开图像时提示无效的JPEG的解决方法...

    网页美工培训专业同学经常问老师在Photoshop打开图像时提示无效的JPEG错误怎么解决?现在网页美工培训老师就整理了一些在Photoshop中打开图像时经常发生的错误: •无法完成您的请求,因为它 ...

  5. 计算机无法打开这个应用,Windows10打开软件时提示“无法打开这个应用”怎么解决?...

    Windows10打开软件时提示"无法打开这个应用"怎么办?很多用户升级Windows10系统后,只要打开Windows应用,系统就会出现提示"无法打开这个应用 无法使用 ...

  6. 打开word时提示需要安装包gaozhi.msi

    打开word时提示需要安装包gaozhi.msi, 重新安装也没用图文详细解决方案 最近在维护校内局域网电脑终端时发现多台机器在更新后word 2003出现异常,打开word出现提示需要安装包gaoz ...

  7. qq打开网页时提示用浏览器打开html,微信QQ打开网页时提示用浏览器打开

    微信QQ打开网页时提示用浏览器打开 一,需求分析 1.1,使用微信或QQ打开网址时,无法在微信或QQ内打开常用下载软件,手机APP等.故此需要在微信qq里提示 二,功能实现 2.1 html实现 请点 ...

  8. 【PB】pb打开pbw时提示Attempt to open datawindow failed错误解决办法

    今天用PB9打开pbw时提示"Attempt to open datawindow failed"的错误信息,经研究发现是pb9程序指向的打印语句有问题. 原有的指向路径: Win ...

  9. wps打开共享文件时提示另一用户正在编辑中

    wps打开共享文件时提示另一用户正在编辑中 使用环境 中标麒麟V7 samba服务端 中标麒麟V7 客户端 wps软件 故障现象 在中标麒麟V7客户端上打开samba服务器共享出来的一个文件,提示另一 ...

最新文章

  1. php lang无效,详解 Go 中的不可变类型
  2. http 301 和 302的区别
  3. ACE入门---很好的文章
  4. RAC RMAN 通道配置 RMAN-12001 RMAN-12001 RMAN-10008 RMAN-10003 ORA-01017 错误
  5. 【职场建议】开发转算法,我们应该如何准备(过来人的肺腑之言)
  6. Sqlplus导出excel文件
  7. php静态属性获取$_get,php - PHP的静态属性的Magic __get getter - SO中文参考 - www.soinside.com...
  8. 飞畅科技-千兆/百兆/核心/PoE/光纤交换机选型指南
  9. python画正方体_python绘制立方体的方法
  10. Linux下修改系统时间的简单方法
  11. 使用脚本控制网页Table的显示隐藏(全代码)_AX
  12. excel模板 基金账本_专项基金拨款记录EXCEL图表
  13. JavaScript格式化时间与日期
  14. 第三阶段应用层——1.7 数码相册—电子书(4)—select支持多输入
  15. java文件转二进制
  16. HDU 4417 Super Mario(线段树||树状数组+离线操作 之线段树篇)
  17. 配置 sysctl.conf 系统参数详解
  18. python将数据导出为csv文件时,出现PermissionError: [Errno 13] Permission denied:问题
  19. JAVAEE面试指导
  20. 自动化爬虫爬取腾讯招聘信息

热门文章

  1. JavaScript open()
  2. 超详细dns劫持解决办法分享
  3. Victor Zue教授的创新观
  4. Java 字符串转码工具类
  5. Greenplum 调优--数据分布法则 - 分布列与分区的选择
  6. 点估计(矩估计法和最大似然估计法)
  7. iPhone 设备目录结构
  8. linux共享内存 pmu,基于ARM的GPS-无源北斗互备PMU研究与设计
  9. VScode运行时提示找不到应用程序
  10. 移动硬盘文件夹不见了怎么办?