吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1569|回复: 3
收起左侧

[其他原创] Autojs6-使用蓝牙定位权限,编写哈啰单车脚本

  [复制链接]
dlufjfiqnurr 发表于 2024-5-11 23:44
本帖最后由 dlufjfiqnurr 于 2024-5-12 00:37 编辑

注:本脚本可以使用autojs6或者autojsX安卓app运行。

本脚本使用注意事项:

蓝牙或者定位必须是autojs6 或者autojsX**(安卓自动化软件app)开启的,才能使用对应关闭方法。否则执行关闭命令是没有任何效果的。**

一句话,自己开启的自己才能关,无法关闭别人开启的

这也是为什么下面定位是分开写的原因,当然定位也可以写成一个方法。

重要:如果你的autojs没有定位、蓝牙、修改系统权限,使用脚本是没有用!!!

通过adb授予安全写入权限

--开启调试 授权安全设置
adb获取当前打开的app的包名
adb shell dumpsys window | findstr mCurrentFocus
--可以授权截图权限 不再弹窗询问
adb shell appops set {包名} PROJECT_MEDIA allow
--添加安全写入权限
adb shell pm grant  {包名} android.permission.WRITE_SECURE_SETTINGS

autojs6包名:org.autojs.autojs6

请确保执行前有无障碍权限

image

1. 蓝牙

//操作蓝牙函数,true启用,false禁用
function setBT(ec){
    //指定时间自动开启蓝牙和定位
    //导入蓝牙包和获取蓝牙适配器
    importClass("android.bluetooth.BluetoothAdapter");
    let mAdapter = BluetoothAdapter.getDefaultAdapter();
    //蓝牙没有启用并且执行开启操作
    if(!mAdapter.isEnabled()&&ec){
        mAdapter.enable();  // 打开蓝牙
    }else if(mAdapter.isEnabled()&&!ec){
        mAdapter.disable();
    }
}

2. 定位

//启用GPS
function enableGPS(){
    importClass("android.provider.Settings")
    importClass("android.location.LocationManager")
    Settings.Secure.setLocationProviderEnabled(context.getContentResolver(), LocationManager.GPS_PROVIDER, true);
}

//关闭GPS
function closeGPS(){
    importClass("android.provider.Settings")
    importClass("android.location.LocationManager")
    Settings.Secure.setLocationProviderEnabled(context.getContentResolver(), LocationManager.GPS_PROVIDER, false);
}

3. 扩展

3.1 模块封装

mokuai.js

// 省略以上代码

//打开根据app名称指定程序
function launchApp(appName){
    app.launchApp(appName);
}

module.exports.tools={
    launchApp,
    enableGPS,
    closeGPS,
    setBT
}

3.2 写一个哈啰单车脚本

单车.js(和mokuai.js在同一个目录下)

let { tools } = require("./mokuai.js");

tools.setBT(true);
tools.enableGPS();
tools.launchApp("哈啰");

var thread = threads.start(function(){
    sleep(1.5*60*1000);
    /**
     * 退出有两种条件:1.执行完成 2.超时
     */
     log("超时关闭")
     exit();
});

//开屏
let open=threads.start(()=>{
    let i=0;
    while(i<10){//延时次数
        //关闭弹窗
        if(id("com.jingyao.easybike:id/actionDialogClose").exists()){
            id("com.jingyao.easybike:id/actionDialogClose").findOne().click();
        }
        //扫一扫
        if(id("com.jingyao.easybike:id/scanLayout").exists()){
            id("com.jingyao.easybike:id/scanLayout").findOne().click();
        }
        i++;
        sleep(1000);
    }
});

因为加了线程,哪怕线程内的代码执行完了,脚本也不会自动结束。

所以加了线程超时关闭,调用exit()结束整个脚本。

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

DUANAYU 发表于 2024-5-21 09:21
不看代码,完全不知道脚本什么作用,还以为是领券的
ouwen000 发表于 2024-12-3 02:36
lcg2014 发表于 2024-12-3 17:14
DUANAYU 发表于 2024-5-21 09:21
不看代码,完全不知道脚本什么作用,还以为是领券的

看不懂代码,这个脚本是干啥用的?
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-12-14 07:00

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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