开发者社区> 小凡晓宇> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

autojs发送通知修改图标

简介: 牙叔教程 简单易懂
+关注继续查看

牙叔教程 简单易懂


效果

image

完整源码

importClass(android.content.ComponentName);
importClass(android.app.PendingIntent);
importClass(android.content.Context);
importClass(android.graphics.Bitmap);
importClass(android.graphics.drawable.Icon);
importClass(android.app.NotificationChannel);
importClass(android.app.NotificationManager);
importClass(android.app.Notification);
/* -------------------------------------------------------------------------- */
let icon = getIcon();
log(icon.small);
events.on("exit", function () {
  icon.large.recycle();
});
notice("牙叔教程 老棒了");
/* -------------------------------------------------------------------------- */
function notice(msg) {
  var manager = context.getSystemService(android.app.Service.NOTIFICATION_SERVICE);
  var channel = new NotificationChannel("id", "name", NotificationManager.IMPORTANCE_HIGH);
  channel.setShowBadge(false); // 显示徽章, 桌面app图标右上角有小红点
  manager.createNotificationChannel(channel);

  notification = new Notification.Builder(context, "id")
    .setContentTitle("公众号: 牙叔教程")
    .setSubText("牙叔教程 简单易懂")
    .setContentText(msg)
    .setSmallIcon(icon.small)
    .setLargeIcon(icon.large)
    .setTicker("this is ticker")
    .setAutoCancel(true)
    .setContentIntent(
      PendingIntent.getActivity(
        context,
        0,
        new Intent().setComponent(
          new ComponentName(context.getPackageName(), "org.autojs.autojs.ui.main.MainActivity")
        ),
        PendingIntent.FLAG_UPDATE_CURRENT
      )
    )
    .build();
  manager.notify(0, notification);
  log("1");
}

function getIcon() {
  let bitmap = createBitmap();
  return {
    small: Icon.createWithBitmap(bitmap),
    large: bitmap,
  };
}

function createBitmap() {
  // 24dp
  let size = 36;
  let width = dp2px(size);
  let paint = new Paint();
  paint.setStyle(Paint.Style.FILL);
  paint.setAntiAlias(true);
  let bitmap = Bitmap.createBitmap(width, width, Bitmap.Config.ARGB_8888);
  let colorList = ["#dd7694", "#c3d94e", "#535164", "#779649"];
  let canvas = new Canvas(bitmap);
  paint.setColor(colors.parseColor(colorList[0]));
  canvas.drawRect(0, 0, width / 2, width / 2, paint);
  paint.setColor(colors.parseColor(colorList[1]));
  canvas.drawRect(width / 2, 0, width, width / 2, paint);
  paint.setColor(colors.parseColor(colorList[2]));
  canvas.drawRect(0, width / 2, (width / 2) * 1, width, paint);
  paint.setColor(colors.parseColor(colorList[3]));
  canvas.drawRect(width / 2, width / 2, width, width, paint);
  return bitmap;
}

function dp2px(dp) {
  const scale = context.getResources().getDisplayMetrics().density;
  return Math.floor(dp * scale + 0.5);
}


备注

通知栏图标一共两个

左侧是小的, 右侧是大的

左侧通过setSmallIcon设置

经测试,

华为手机上, 左侧小图标显示正常;

小米手机上, 左侧小图标一直显示为app的logo,

也就是说在小米手机上无法修改.

打包时, 修改app的logo, 这样通知的小图标就改了

环境


手机: Mi 11 Pro


Android版本: 12


Autojs版本: 9.1.8

相关教程

https://www.yuque.com/go/doc/52685290


https://www.yuque.com/go/doc/65146895


名人名言


思路是最重要的, 其他的百度, bing, stackoverflow, github, 安卓文档, autojs文档, 最后才是群里问问
--- 牙叔教程


声明


部分内容来自网络
本教程仅用于学习, 禁止用于其他用途



版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
autojs-修改java代码-为我所用
牙叔教程 简单易学 使用场景 把java代码改成autojs可直接使用的代码
12 0
Egg.js试水 - 文章增删改查【前后端分离】
上一篇文章讲的是后端渲染的项目 - Egg.js 试水 - 天气预报。但是没有引入数据库。这次的试水项目是文章的增删改查,将数据库引进,并且实现前后端分离。
61 0
邮箱发送
邮箱发送
1612 0
修改光标颜色
<p style="margin-top:0px; margin-bottom:0px; font-size:14px; font-family:Menlo">[[UITextField appearance] setTintColor:[UIColor RedColor]];//<span style="font-family:'Heiti SC Light'">设置</span>UIT
879 0
修改oracle 10g的字符集
修改oracle 10g的字符集 修改数据库字符集为:ZHS16GBK查看服务器端字符集SQL > select * from V$NLS_PARAMETERS;修改:$sqlplus /nologSQL>conn / as sysdba若此时数据库服务器已启动,则先执行 SHUTDOWN IMM...
539 0
+关注
329
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载