本帖最后由 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等工具就不分享了,免得有广告嫌疑,有疑问或有其它需求的可在回复中提出)
|