搜索

195

主题

282

帖子

3169

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3169
发表于 2020-8-27 14:06:37 6823 浏览 2 回复

关闭同步SIM联系人弹窗通知

本帖最后由 七个柚子多少钱 于 2020-8-27 14:32 编辑

1.根据需要关闭内容信息,先找到“同步SIM联系人”的字符串在哪定义了。一般是会在.XML文件中,可以用grep指令搜索




可以找到在文件vendor/mediatek/proprietary/packages/apps/Contacts/SimProcessor/res/values-zh-rCN/strings.xml文件中被定义了:

  1. <string name="syncing_sim_contacts">正在同步SIM联系人...</string>
复制代码



2.继续用grep指令搜索字符串ID“syncing_sim_contacts”在哪里被使用

  1. grep -rn "syncing_sim_contacts" ./vendor/mediatek/proprietary/packages/apps/Contacts/
复制代码

3.根据搜索结果,应该是在vendor/mediatek/proprietary/packages/apps/Contacts/SimProcessor/src/com/mediatek/simprocessor/SimProcessorService.java文件被引用了;



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

195

主题

282

帖子

3169

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3169
 楼主| 发表于 2020-8-27 14:16:17
本帖最后由 七个柚子多少钱 于 2020-8-27 14:34 编辑

4.打开SimProcessorService.java文件

有如下代码段:

  1.     public void onCreate() {
  2.         super.onCreate();
  3.         Log.i(TAG, "[onCreate]...");
  4.         GlobalEnv.setApplicationContext(getApplicationContext());
  5.         mProcessorManager = new SimProcessorManager(this, mListener);

  6.         final NotificationManager nm = this.getSystemService(NotificationManager.class);
  7.         final NotificationChannel channel = new NotificationChannel(CHANNEL_ID,
  8.                 getString(R.string.syncing_sim_contacts),
  9.                 NotificationManager.IMPORTANCE_LOW);
  10.         nm.createNotificationChannel(channel);
  11.         Notification.Builder builder = new Notification.Builder(this)
  12.                 .setWhen(System.currentTimeMillis())
  13.                 .setChannelId(CHANNEL_ID)
  14.                 .setSmallIcon(android.R.drawable.ic_popup_sync)
  15.                 .setContentTitle(getString(R.string.syncing_sim_contacts));
  16.         Notification notification = builder.build();
  17.         startForeground(ONGOING_NOTIFICATION_ID, notification);
  18.     }
复制代码

其中getString(R.string.syncing_sim_contacts)返回就是弹窗的字符串内容,StartForeground(int,Notification)这里是启动一个前台服务,在启动服务后会有一个弹窗的通知,如果不需要显示通知,只要把参数里的int设为0即可。




回复

使用道具 举报

195

主题

282

帖子

3169

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3169
 楼主| 发表于 2020-8-27 14:35:19
本帖最后由 七个柚子多少钱 于 2020-8-27 15:05 编辑

5.修改后的的代码:
  1.     public void onCreate() {
  2.         super.onCreate();
  3.         .......
  4.         //startForeground(ONGOING_NOTIFICATION_ID, notification);
  5.         startForeground(0, notification);
  6.     }
复制代码
注:平台6761
回复

使用道具 举报

返回列表
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


登录或注册
快速回复 返回顶部 返回列表