Auto.js通知栏

9 篇文章 1 订阅
订阅专栏

    本教程分为三个部分:发送通知(自定义图片),通知栏下载进度显示,通知栏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//转换bitmap
    largeimg3 = Icon.createWithBitmap(largeimg2)//转换icon,右侧大图标
    img = images.resize(img,36)//左侧小图标
    img2 = img.bitmap
    img3 = 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("正在下载...🎶");
request.setTitle("AutoJsPro");
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
    request.allowScanningByMediaScanner();
    request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
}
​
//  setDestinationUri(Uri uri)设置下载路径
request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, "AutojsPro.apk");
// get download service and enqueue file
 manager =  context.getSystemService(Context.DOWNLOAD_SERVICE);
manager.enqueue(request);//加入到下载队列

三.通知栏node.js版

  

  pro9内置notification模块,可进行通知,开发文档地址:

https://pro.autojs.org/docs/v9/zh/modules/notification.html

"nodejs";
//https://pro.autojs.org/docs/v9/zh/modules/notification.html
/**
 * 作者: 姜来式
 * QQ: 1216951671
 */
const { showToast } = require('toast');
const notification = require('notification');
const app = require('app');
const { setClip } = require('clip_manager');
const notificationId = 121695;
var qq = "1216951671";
    


notification.notify(notificationId, {
    contentTitle: "点击触发一条新通知",
    contentText: "这是一条可以被用户清理的通知",
    ticker: "状态栏通知",
    onDelete: () => {
            showToast("退出");
            process.exit();
        },
    onContentClick: () => {
        qqjump();  //跳转的qq界面
    },
    autoCancel: true,
});

const qqid = 1671;
function qqjump() {
    notification.notify(qqid, {
        contentTitle: "联系作者",
        contentText: "点击跳转",
        ticker: "收到一条新通知",
        silent: true,
        onContentClick: () => {
            notification.cancel(qqid);
            app.startActivity({
                    action: "android.intent.action.VIEW",
                    data: "mqqapi://card/show_pslcard?src_type=internal&source=sharecard&version=1&uin=" + qq, // call author
                    packageName: "com.tencent.mobileqq",
                })
        },
        onDelete: () => {
            showToast("退出");
            process.exit();
        },
        actions: [
            {
                title: "点击按钮复制作者QQ号",
                onClick: () => {
                    setClip(qq);
                    showToast("已复制到剪贴板")
                    
                },
            },

        
        ],
    });
}

$autojs.keepRunning();//全局函数,一直运行


代码下载及更多教程在我的公众号:For My Future

android 10.0 通知接收第三方app通知开关(屏蔽第三方app通知)
安卓兼职framework和app工程师的博客
06-16 1873
在定制化开发中,需要屏蔽通知通知,只要NotificationManager这里面控制通知的发送就可以了 diff --git a/frameworks/base/core/java/android/app/NotificationManager.java b/frameworks/base/core/java/android/app/NotificationManager.java old mode 100644 new mode 100755 index dd39376f80..0fdda1a931
autojs通知_监听通知失败,请教大佬!
weixin_39660408的博客
12-20 1123
该楼层疑似违规已被系统折叠隐藏此楼查看此楼这个是自带的监控通知示例,运行之后会有错误提示,请问各位大佬,这个是什么情况??auto();events.observeNotification();events.onNotification(function(notification){printNotification(notification);});toast("监听中,请在日志中查看记录的...
通知通知,及点击跳转(广播实现)
ht1063899049的博客
08-11 864
很简单的一串代码就可以实现: Notification notification = new NotificationCompat.Builder(context) /**设置通知左边的大图标**/ .setLargeIcon(BitmapFactory.decodeResource(context.getResources(), R.mipmap.ic_laun
autojs通知_js实现浏览器通知功能
weixin_39623750的博客
01-15 1339
if(window.Notification) {//支持} else{//不支持}目前,Chrome和Firefox在桌面端部署了这个API,Firefox和Blackberry在手机端部署了这个API。if(window.Notification && Notification.permission !== "denied") {Notification.requestPerm...
autojs免root脚本引擎开发的发送通知和去除通知代码,值得参考学习
feiyunjs的博客
07-08 4257
说明 本文提供的代码仅供参考。不建议用于生产环境。 可能有些地方在最新版本的Auto.js上面需要做修改,才能运行。 Auto.js简介 Auto.js是利用安卓系统的“辅助功能”实现类似于按键精灵一样,可以通过代码模拟一系列界面动作的辅助工作。 与“按键精灵”不同的是,它的模拟动作并不是简单的使用在界面定坐标点来实现,而是类似与win一般,找窗口句柄来实现的。 Auto.js使用JavaScri...
autojs通知_通知autojs吧】_百度贴吧
weixin_39631951的博客
12-20 496
该楼层疑似违规已被系统折叠隐藏此楼查看此楼"ui";//https://blog.csdn.net/biickvtkd/article/details/45168105//本文由上述网址资料和他人资料 改编ui.layout();//threads.start(function(){alert("由于手机的不同\n有些功能可能无法用\n还请反馈作者");});//导入类importClass("...
autojs自定义通知界面
snailuncle2的博客
09-06 1322
牙叔教程 简单易懂 效果展示 环境 Autojs版本: 9.0.5 Android版本: 10.0.0 MIUI版本: 12.5.1 MT管理器版本: 2.9.9 Android Studio 4.1.2 思路 要自定义通知界面, 那就需要实例化RemoteViews, RemoteViews构造函数如下: public RemoteViews(String packageName, int layoutId) { throw new RuntimeException("Stub!"); } 第一
autojs发微信通知
snailuncle2的博客
04-15 2844
牙叔教程 简单易学 使用场景 给微信发送通知 效果展示 autojs版本 pushplus(推送加) pushplus(推送加)集成了微信、企业微信、钉钉、短信、邮件等实时信息推送平台 你只需要调用简单的API,即可帮助你迅速完成消息的推送,使用简单方便 我们的所做的一切只是为了让推送变的更简单 代码 let token = "b2b7999a174049ec9c082fb3bd7b1f5b"; let url = "http://www.pushplus.plus/send"; let r = ht
Auto.js食用指南
最新发布
HICKER_BOY的博客
06-27 3055
auto.js 8.0pro版本(对比4.0版本有阉割,wx和zfb不能点)客户端模式服务器模式auto.js 4.0版本有一种模式:客户端模式链接: https://pan.baidu.com/s/1uSU60UvxhT-rHOzmWQ0gjw?pwd=ihi8 提取码: ihi8设备和电脑连接:**服务器模式:**手机和电脑在同一局域网下相互连接。(手机电脑同wifi远程连接,稳定)
android auto华为版_Auto.js的优雅使用(如何正确薅羊毛)
weixin_39929813的博客
11-19 1886
一. Auto.js的介绍官网地址:Auto.js 官网Github地址:Auto.js GithubAuto.js是一个不需要Root权限的JavaScript自动化软件,类似按键精灵的自动操作软件,可以实现自动点击、滑动、输入文字、打开应用等功能。 二. Auto.js的优缺点优点:免root脚本制作工具代码是入门级别的,有点程序基础即可悬浮窗录制和运行布局分析国内文档丰富,教程与示例详细强大...
js消息提示插件,一个轻量级的弹出提示通知插件
01-09
SmallPop 一个轻量级的弹出提示通知插件没有依赖关系,使用这个JavaScript插件轻松创建通知
Auto.js协议实战脚本_初识Auto.js(实战一)
hjacto的博客
11-21 6375
Auto.js是个基于JavaScript语言运行在Android平台上的脚本框架,Auto.js主要工作原理是基于辅助服务AccessibilityService,从而实现免Root(仅限Android 7.0及以上系统可实现完全免Root的所有)的脚本操作。 Auto.js使用JavaScript作为脚本语言,目前使用Rhino 1.7.7.2作为脚本引擎,支持ES5与部分ES6特性。 因为Auto.js是基于JavaScript的,学习Auto.js的API之前建议先学习JavaScript...
Auto.Js 第三章:坐标、控件 - 模拟真人操作
热门推荐
qq_43435123的博客
11-15 1万+
教程基于Auto.js 4.0.1版本 目标:模拟真人手势操作 对手机的操作存在几种方式: 点击 长按 滑动 按实体按键 后面的是衍生的,并不是主要操作。 5. 多击 6. 多手势 使用坐标完成手势操作 设置分辨率 setScreenMetrics(width, height) width <number> 屏幕宽度,单位像素 height <number> 屏幕高度,单位像素 设置脚本坐标点击所适合的屏幕宽高。如果脚本运行时,屏幕宽度不一致会自动放缩坐标。 设置分辨率可以让
autojs获取fullid_autojspro常用的代码和公共函数搜集整理,史上最全最完整
weixin_39578457的博客
12-19 2544
1 /**2 * 整理者: 家3 * 日期: 201902244 * 妈呀: 整理了一宿,现在是早上6:345 * 功能: 把某些常用的函数集中起来,方便调用6 * 函数来源: 都是群里的大佬写的,稻草人,+攀登,Ai,破晓的星辰,灶猫,家,浩然,白酒煮饭,生僻字大佬,内个谁,Xero,无名小姐,壞蛋┭,锦瑟安年Ω,专业滥竽充数,膜拜以上几位大神,不管你们同意不同意,我都把你们的代码搬到一块了...
Auto.js 通知读取权限 两种方法
qq_25226575的博客
09-28 2201
"ui"; runtime.loadDex("模块/android.dex") ui.layout( <horizontal> <button id="跳转"text="跳转"/> <Switch id="通知" text="通知读取权限" checked="{{通知()}}"textSize="15sp"/> </horizontal> ); ui.跳转.click(() => { app.sta
autojs通知_基于Auto.js的蚂蚁森林智能脚本 (长期维护) (JavaScript语言)
weixin_39530833的博客
12-20 401
* `新增` 定时循环功能·定时任务自动管理·好友排行榜样本复查·主页能量球循环监测* `新增` 脚本运行安全·运行失败自动重试·单次运行最大时间限制·排他性任务最大排队时间限制·脚本炸弹预防* `新增` 运行前提示对话框及相关图形页面配置* `新增` 排行榜滑动距离超限时距离参数自动修正机制* `新增` 根据需要自动适时返回森林首页监测自己能量的返检机制* `新增` ...
js 通知
softuse的博客
06-17 1229
转自 :https://huhanlin-2008-163-com.iteye.com/blog/772506 <scripttype="text/javascript"language="Javascript"> varscrlSpeed=1 //decreasingspeedformozilla scrlSpeed=(document.all)?...
js 调用浏览器 Notification
weixin_42136785的博客
09-06 1171
const notification = window.Notification || window.mozNotification || window.webkitNotification if (notification) { // 可以通过使用箭头函数变更this指向 notification.requestPermission(result => { console.log(result) // granted(允许) || denied(拒绝) .
js系统通知
adc_god的博客
06-04 488
if(undefined !== window.Notification) { if (Notification.permission === "default") { Notification.requestPermission(); } } Notification.requestPermission(function() { if(Notification.permission === 'granted') { // 用户点击了允许
auto.js界面源码
06-25
### 回答1: auto.js是一款流行的安卓自动化工具,可以通过编写JS脚本来实现自动化操作,例如模拟用户点击、输入、滑动等操作。在使用auto.js时,有时需要对界面进行控制,例如隐藏或显示控件、修改控件属性等。此时就需要用到auto.js界面源码。 auto.js界面源码是指每个安卓应用界面的xml布局文件,以及对应的java代码。xml布局文件用于定义界面布局和控件,而java代码则用于控制控件的属性和行为。在auto.js中,可以通过获取应用界面的xml布局文件和java代码,来实现对应用界面的操作和控制。 获取应用界面的xml布局文件可以使用auto.js内置的uiautomatorviewer工具,也可以使用auto.js自带的ui文件浏览器。通过上述工具可以快速获取应用界面的xml布局文件和控件id。然后可以使用auto.js提供的UiObject对象来获取控件实例,在控制控件属性和操作时,可以使用UiObject提供的方法。 获取应用界面的java代码需要使用反编译工具,例如apktool。使用apktool反编译后,可以获得应用的java源码。然后可以根据需要修改java代码来控制应用的行为和属性,例如修改控件属性、添加控件事件等。 总之,通过auto.js界面源码,可以实现更加精细的应用界面控制和操作。但是需要注意的是,在修改应用的java代码时,需要注意合法性和安全性,避免对应用造成意外的影响。 ### 回答2: auto.js是一款国内开发的Android自动化脚本应用,可以通过编写脚本自动完成一些重复的操作。其界面源码可以通过GitHub上的auto.js库进行获取。 auto.js的界面使用的是Android自带的布局,主要分为几个部分。顶部为导航,包括应用名称、版本号和菜单按钮。菜单按钮可用于打开或隐藏左侧的菜单。 左侧的菜单包括一些基本操作,如新建、打开、保存、运行等,以及一些扩展功能,如导入/导出脚本、查看日志、设置等。 中间的主界面包括两个模块,分别是编辑器和运行控制。编辑器提供代码输入和编辑功能,支持代码高亮、自动补全等功能。运行控制模块包括运行、停止、调试等。 底部是状态,包括当前时间、电量、存储等信息。 auto.js的界面基本符合Android应用的设计规范,简洁易用,易于学习和使用。通过查看源码,可以了解其设计思路和具体实现方式,对于自主开发Android应用也有一定的借鉴意义。
写文章

热门文章

  • 制作自己的数据库接口 4971
  • 从NovelAi的云端部署到post请求 3729
  • Auto.js通知栏 3131
  • Auto.js制作短视频app(添加登陆注册界面) 2517
  • auto.js制作简易音乐app(一) 2189

分类专栏

  • 机器学习 1篇
  • auto.js 9篇
  • 网站 1篇
  • 笔记 5篇

最新评论

  • Auto.js制作短视频app(添加登陆注册界面)

    m0_71735149: 大佬我爱你 我要给你生猴子

  • 单片机多电梯控制系统

    777-: 博主有仿真电路图吗表情包

  • 单片机多电梯控制系统

    Qdaixiaon: 兄弟,你有吗

  • 单片机多电梯控制系统

    今天不想起!!: 有没有仿真电路图?

  • Auto.js GIF

    m0_70824574: 对,报错

大家在看

  • C#高级操作符 277
  • 如何打包和分发 Python 应用程序 1009
  • 如何在 Linux 中对存储设备进行分区和格式化 603
  • 一.(二)python数据输入(input) 342
  • jsp钢铁集团公司安全管理系统e2160

最新文章

  • 从NovelAi的云端部署到post请求
  • Auto.js GIF
  • Auto.js视图放大镜
2022年11篇
2021年5篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

深圳坪山网站建设公司中山网站快照优化上海高端网站优化搜狗网站优化推广提升网站快速优化排名公司福田免费网站优化方式周口网站关键词排名技术优化菏泽优化网站多少钱网站快照优化怎么做杨浦区360网站优化平台山西省网站优化推广昆明网站优化的公司企业网站优化的感想来宾网站排名优化费用推广企业网站淹侗云速捷优化太原网站优化价格网站优化排名的方法繁昌网站优化费用什么网站可以整站优化珠三角网站口碑优化注意事项优化网站咨询h火15星四川网站优化好不好实力强的网站推广与优化团队汤阴网站建设推广优化义马网站推广优化汕头网站关键词排名优化优化网站使用教程酒店手机端网站SEO优化行业网站怎么优化收益珠海网站优化排名哪家好宁波网站关键词优化代码香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

深圳坪山网站建设公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化