吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 5661|回复: 21
上一主题 下一主题
收起左侧

[其他转载] 【AutoJs】借助Auto.JS快速打造自己的安卓小工具(1)——一键锁屏

[复制链接]
跳转到指定楼层
楼主
6f7a8d 发表于 2022-8-13 11:11 回帖奖励
本帖最后由 6f7a8d 于 2022-8-23 18:15 编辑

今天为大家讲解一下如何借助 Auto.js 来快速打造自己的安卓小工具。
之所以要用 Auto.js ,主要是基于Auto.js 所用的JavaScript语言使用广泛并且入门比较容易,而且Auto.js 自带的脚本打包功能,可以用来实现快速打造应用的目的。
一般的脚本就不说了,大家都懂,今天重点讲一下如何实现一些比较实用、高级的功能,过程中除了编写JavaScript脚本,可能还需要对 Auto.js 的源码进行一些修改。
由于官方的Auto.js已停止开源,公开的版本只到4.1.1,里面的功能比较老旧,因此,建议大家可以使用GIthub社区上一些还在维护的  Auto.js 衍生版本。


首先上一个成品截图及脚本源码,这是基于自己修改的Auto.js 打造的一个自带语音播报功能的安卓实用小程序——一键锁屏:





[JavaScript] 纯文本查看 复制代码
"ui";
ui.layout(
    <vertical>
        <text text="Auto.Js" textSize="24sp"  w="*" gravity="center">
        </text>
        <button id="isAdminActive" textSize="40sp">
             检测设备管理权限
         </button>
        <button id="requestAdmin" textSize="40sp">
             申请设备管理权限
         </button>
        <button id="lockNow" textSize="56sp">
            一键锁屏
        </button>
        <button id="lockLater" textSize="56sp">
            延时锁屏
        </button>
        <button id="removeActiveAdmin" bg="#f5222d" textSize="40sp">
            移除设备管理权限
        </button>
    </vertical>
);
importClass("android.app.admin.DevicePolicyManager")
importClass("android.content.ComponentName")
importClass("com.stardust.autojs.core.device.DeviceAdminReceiver")
importClass("android.content.Context")
var adminReceiver = new ComponentName(activity, DeviceAdminReceiver);
var devicePolicyManager = activity.getSystemService(Context.DEVICE_POLICY_SERVICE);
ui.isAdminActive.click(function() {
    if (devicePolicyManager.isAdminActive(adminReceiver)) {//判断超级管理员是否激活
        toastLog("设备管理权限已激活");
        speech.speak("请先激活设备管理权限!");
    } else {
        toastLog("设备管理权限未激活");
        speech.speak("设备管理权限未激活");
    }
})
ui.requestAdmin.click(function() {
    let intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
    intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, adminReceiver);
    intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION, "设备管理权限");
    activity.startActivityForResult(intent, 284);
})
ui.lockNow.click(function() {
    if (devicePolicyManager.isAdminActive(adminReceiver)) {
        devicePolicyManager.lockNow();
    } else {
        toastLog("请先激活设备管理权限!");
        speech.speak("请先激活设备管理权限!");
    }
})
ui.lockLater.click(function() {
    if (devicePolicyManager.isAdminActive(adminReceiver)) {
        let seconds = 10
        toastLog(seconds + "秒后锁屏!");
        speech.speak(seconds + "秒后锁屏!");
        setTimeout(function () {
            devicePolicyManager.lockNow();
        }, seconds * 1000);
    } else {
        toastLog("请先激活设备管理权限!");
        speech.speak("请先激活设备管理权限!");
    }
})
ui.removeActiveAdmin.click(function() {
    devicePolicyManager.removeActiveAdmin(adminReceiver);
})


最后是开发过程中需要用到的参考资料:
Android 息屏亮屏代码实现
(修改过程中使用的autojs等工具就不分享了,免得有广告嫌疑,有疑问或有其它需求的可在回复中提出)

免费评分

参与人数 2吾爱币 +1 热心值 +1 收起 理由
ck1001CK + 1 用心讨论,共获提升!
xnink + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

推荐
 楼主| 6f7a8d 发表于 2022-8-15 22:03 |楼主
本帖最后由 6f7a8d 于 2022-8-15 22:06 编辑

GPL2协议是上游自己另外规定的,感觉有点问题。最近研究了一下,上游那边的GPL2协议应该是无效的,原协议(MPL2.0+非商业使用)是autojs原作者定的,上游作者想更改协议需要首先征得全体贡献者的同意。这里面最大的贡献者是autojs原作者,上游作者因此给原作者提过Issue,但原作者既没有同意也没有给予任何授权,这样更改的协议应该是无效的。所以目前就把无效的GPL2协议删除了

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
boxer + 1 + 1 谢谢@Thanks!

查看全部评分

推荐
bbszhu 发表于 2023-3-15 12:27
importClass 需传入 "类" 参数, 而非 "[JavaPackage com.stardust.autojs.core.device.DeviceAdminReceiver]". (<init>#248)
importClass 需传入 "类" 参数, 而非 "[JavaPackage com.stardust.autojs.core.device.DeviceAdminReceiver]".
3#
myconan 发表于 2022-8-13 15:34
4#
boxer 发表于 2022-8-13 16:20
GPL协议的...
5#
ytlk0535 发表于 2022-8-13 17:20
现在有8的版本了吧
6#
ysjd22 发表于 2022-8-14 08:50
感谢分享。下载了试试看
7#
忧郁之子 发表于 2022-8-14 09:13
auto.js辅助使用还是可以的
8#
ruicky 发表于 2022-8-15 11:13
看起来不错的样子
9#
Mrli66666 发表于 2022-9-24 21:48
收藏一手。。。。。。
10#
jadespider 发表于 2022-9-27 10:05
你这个speech.speak是在哪里定义的?
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-5-4 20:44

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表