本教程分为三个部分:发送通知(自定义图片),通知栏下载进度显示,通知栏nodejs版。实现效果如下图。(代码下载在我的公众号:For My Future对应一文文末)

在写代码之前,首先要把软件通知权限都打开:

在第一次运行代码之后,会出现类别,把类别中的通知权限也给到:

一.发送通知

利用android.app.Notification这个类进行通知的创建,有两个重点:channel和builder,channel设置的是系统如何通知,比如设置通知显示的位置,通知是否震动等等,而通知真正的内容用builder来进行设置创建。

channel(详见代码注释):

var channel = new android.app.NotificationChannel("121695", "1671", android.app.NotificationManager.IMPORTANCE_HIGH);//Android8.0以上的的通知要设置渠道,否则就无法显示,第一个参数是channel_name,第二个参数是channel_id,自己随意设置channel.enableLights(true);//开启指示灯,如果设备有的话。channel.setLightColor(0xff0000);//设置指示灯颜色channel.setShowBadge(true);// 通知渠道是否在应用图标的右上角展示小红点channel.enableVibration(true);//是否震动channel.setBypassDnd(true);//绕过免打扰模式channel.setLockscreenVisibility(Notification.VISIBILITY_PUBLIC)//在锁屏界面显示channel.setDescription("QQ:1216951671")// getId() —  获取 ChannleId// enableLights() —  开启指示灯,如果设备有的话。// setLightColor() —  设置指示灯颜色// enableVibration() —  开启震动// setVibrationPattern() —  设置震动频率// setImportance() —  设置频道重要性// getImportance() —  获取频道重要性// setSound() —  设置声音// getSound() —  获取声音// setGroup() —  设置 ChannleGroup// getGroup() —  得到 ChannleGroup// setBypassDnd() —  设置绕过免打扰模式// canBypassDnd() —  检测是否绕过免打扰模式// getName() —  获取名称// setLockscreenVisibility() —  设置是否应在锁定屏幕上显示此频道的通知// getLockscreenVisibility() —  检测是否应在锁定屏幕上显示此频道的通知// setShowBadge() 设置是否显示角标// canShowBadge() —  检测是否显示角标// setImportance 重要程度

随后创建manager管理channel:

var manager = context.getSystemService(android.app.Service.NOTIFICATION_SERVICE); //NotificationManager对象来对通知进行管理
manager.createNotificationChannel(channel);//通过 NotificationManager 的 createNotificationChannel 方法来创建 NotificationChannel 

builder:

notification = new android.app.Notification.Builder(context, "121695") //channel_id是自己取得,121695.setContentTitle("这是我的标题").setContentText("QQ:1216951671").setWhen(new Date().getTime())//时间毫秒格式.setSmallIcon(img3)//设置图片,下文会讲述怎么设置.setSubText(getLocalTime(new Date().getTime()))//毫秒转换时间格式.setTicker("更多精彩在公众号:For My Future")//第一次推送.setLargeIcon(largeimg3).setDefaults(Notification.DEFAULT_ALL) //打开呼吸灯,声音,震动,触发系统默认行为.setPriority(Notification.PRIORITY_HIGH) //设置该通知优先.setAutoCancel(true).setContentIntent(//设置点击事件PendingIntent.getActivity(//点击跳转context,0,new Intent().setComponent(//跳转到qq主界面new ComponentName("com.tencent.mobileqq", "com.tencent.mobileqq.activity.SplashActivity")    ),PendingIntent.FLAG_UPDATE_CURRENT)).build();} else { toast("没写")}

使用pro9notify()函数进行通知

    manager.notify(1, notification);

自定义图片资源:

setLargeIcon()和setSmallIcon()参数都是icon类型的,如果直接设置图片会报错,所以要把图片先转换为bitmap格式,再转换成Icon类型的图标。

let img = images.read("./logo.png")//图片放在同级目录下largeimg = images.resize(img,64)//裁剪重设大小largeimg2 = largeimg.bitmap//转换bitmaplargeimg3 = Icon.createWithBitmap(largeimg2)//转换icon,右侧大图标img = images.resize(img,36)//左侧小图标img2 = img.bitmapimg3 = Icon.createWithBitmap(img2)

时间转换:

function getLocalTime(nS) {     var d = new Date(parseInt(nS));    //根据时间戳生成的时间对象var date = (d.getFullYear()) + "." + (d.getMonth() + 1) + "." +(d.getDate()) + " " + (d.getHours()) + ":" + (d.getMinutes()) + ":" + (d.getSeconds()); return date;
}

二.通知栏下载进度显示

经过上网查询,利用DownloadManager是最简单的进度显示方法,这里以下载AutoJsPro的apk为例子。下载完成后文件保存在Download目录下

​/*** 作者: 姜来式* QQ: 1216951671*/
var url = "https://cdn.autojs.org/autojspro-latest.apk"
importClass(android.content.Context);
importClass(android.os.Environment);
importClass(android.os.Build);
importClass(android.net.Uri);
importClass(android.app.DownloadManager);
request = new DownloadManager.Request(Uri.parse(url));
request.setDescription("正在下载...												

Auto.js通知栏相关推荐

  1. Auto.JS 开发

    From:https://blog.csdn.net/a6892255/article/details/107302369 autojs 代码大全(实战演练):https://blog.csdn.ne ...

  2. 【Auto.JS】Autojs官方提取文档使用说明函数 (2)

    接上一篇文章:Autojs官方提取文档使用说明函数 (1) Images Stability: 2 - Stable images模块提供了一些手机设备中常见的图片处理函数,包括截图.读写图片.图片剪 ...

  3. auto.js开发网课搜题浮窗软件,类似按键精灵可浮窗式快速搜题

    网课搜题浮窗软件实战开发一个浮窗式的安卓搜题软件 准备知识:javascript auto.js一些基础语法 打包工具:auto.js7.401 免费接口可以自己去找!网上一大堆. 学习资料领取及工具 ...

  4. Auto.js简单使用

    Auto.js是使用JavaScript作为脚本语言 支持部分ES6特性 以下API是基于Auto.js4.X版本进行介绍 "自动操作"的部分又可以大致分为基于控件和基于坐标的操作 ...

  5. 【autojs】Auto.js Pro截图取色脚本源代码

    代码 /***完成时间: 2019年4月18日 下午9:42:35*测试机型: vivo PD1813D*Auto.js版本: 4.1.0 Alpha5*Android版本: 8.1.0*屏幕: 10 ...

  6. Auto.js食用指南

    Auto.js食用指南 控件点击是autojs特有的一项功能,基于安卓的无障碍功能的,在软件上有很好的支持,常用于办公软件等- 前言: 软件选择: auto.js 8.0pro版本(对比4.0版本有阉 ...

  7. apk解密工具_手机端操作| Auto.js一键解密/一键加密工具免费分享

    ?  关注『掌玩小子』 带你『体验极客』 1 在之前的博文中,我前后分享了Auto.js相关的加密解密的文档,如<Auto.js Pro离线打包源代码加密算法分析><来 给你代码!A ...

  8. Auto.js 调用系统短信、电话

    本文所有教程及源码.软件仅为技术研究.不涉及计算机信息系统功能的删除.修改.增加.干扰,更不会影响计算机信息系统的正常运行.不得将代码用于非法用途,如侵立删! Auto.js 调用系统短信.电话 操作 ...

  9. Auto.js 抖音--留痕--参数分析

    环境: VS Code Auto.js Pro 7.0.4 安卓全机型 跳转 // 会在手机显示一个控制台,打印的信息会在手机端显示(需要开启悬浮窗权限) // autojs在手机端显示调试信息,也就 ...

最新文章

  1. latex中插入visio矢量图的方法
  2. 关闭子窗口刷新父窗口
  3. python自动汇总excel_RPA手把手:Python轻松实现EXCEL自动化
  4. 百度搜索关键字抓取_百度搜索引擎收录的抓取规则 - 蜘蛛池
  5. Fritzing添加新的元件库的方法
  6. Execution failed for task ':app:mergeDebugResources
  7. protocol buffer开发指南
  8. python中进制转换函数_Python内置函数进制转换的用法
  9. Linux跨平台编译安卓版本protobuf库——趟坑记录
  10. java weka 分类_Weka开发[48]——用Weka文本分类
  11. 考研篇:如何在偶数年数学120+(刷同样的题,为什么有人的分数会更高?)
  12. linux 时间 time(2)-频率(时钟周期/指令周期/CPU周期)和 jiffies
  13. iOS透明导航栏的平滑过渡(进阶版)
  14. CATIA V5-6 R2017 支架类零件设计
  15. Redis桌面管理工具RedisDesktopManager
  16. 安装oculus运行时出现问题_安装软件时出现解析包出现问题是什么原因
  17. C# Culling Mask
  18. Java网课资源分享
  19. Matlab高光谱遥感数据处理与混合像元分解实践技术
  20. LaTeX学习日记(持续更新)

热门文章

  1. edi mysql_EDI:_数据库基础(mysql)答案_学小易找答案
  2. 知道一点怎么设直线方程_不知道怎么购买普洱茶?来积累一点硬知识!
  3. 用keras tuner 来优化tensorflw超参数
  4. AI研究生的文学情怀,厦大硕士毕业生文言致谢聊三年求学路
  5. rss阅读器保存html文件,4款在线RSS阅读器使用体验
  6. 批量实现json_to_dataset将json文件转换为训练所需的dataset
  7. 树莓派4通过华为ME909S 4G模块连接蜂窝网(非PPP)
  8. 网易杭研易盾实习心得(4)
  9. 转型OMO的背后:考虑机构的资金和实力-线上线下融合式教学
  10. 【字节搜索校招/社招/实习内推】