歡迎大家使用體驗、提交錯誤,後面將逐步完善並加入收好友能量功能;
私信小編可獲取github票~
目前只能收自己的,收好友能量的功能還在開發中...
0、效果演示:
1、腳本實現功能
啟動後,腳本處於監聽狀態,注意開啟保護,不要被後臺關閉了。一般能量每天都是同一個時間點成熟,成熟後會通知欄發出通知(下面有說怎麼在螞蟻森林裡開啟通知),腳本監聽到該通知後,就會自動觸發啟動,點亮屏幕,解鎖,進入螞蟻森林。這時候,就需要用到你設置的時間了。因為是提前一分鐘進入,所以能量還沒成熟,但腳本會一直戳屏,直到到你設置的結束時間。所以輸入時間並啟動後,雖然沒有任何動靜,但只要不報錯,一般就可以了;
2、下載源碼安裝autojs.apk
源碼在文章底部
3、解壓並導入到app
解壓源碼後,放到手機存儲下的「腳本」目錄;也可以是其他的,記得就行
打開autojs app,點擊導入
4、打開螞蟻森林能量提醒功能
進入螞蟻森林,點右上角「...」,進入設置,開啟提醒
5、打開無障礙服務、通知權限
點擊後如有跳轉,就對應的完成設置
6、將autojs加入電池白名單、保護鎖定,防止被後臺關閉(這個大家都會的吧)
7、初次使用,程序中main()中的gesture()函數,是解鎖功能,需要修改成自己的鎖屏手勢。
如果不改呢,就只是不能解鎖而已,其他沒影響
可通過打開開發者選項中的指針位置查看坐標。
8、運行腳本即可
9、由於是通過螞蟻森林通知觸發,所以輸入時間並啟動後,雖然沒有任何動靜,但只要不報錯,一般就可以了;
輸入時間處,點「確定」按鈕左邊的橫線位置,就會彈出鍵盤。如果想立即看到效果,可以在這裡添加RunApp();後再運行:
10、如果想測試解鎖,在這裡加條語句
sleep(2000);main();
然後按照點擊運行、輸入時間、鎖屏,靜待手機自動解鎖
11、報錯情況
可能是通知欄權限沒開可能是無障礙服務沒開
歡迎評論留言
源碼
function CloseApp() { let packageName = currentPackage(); app.openAppSetting(packageName); text(app.getAppName(packageName)).waitFor(); let is_sure = textMatches(/(.*強.*|.*停.*|.*結.*|.*行.*)/).findOne(); if (is_sure.enabled()) { textMatches(/(.*強.*|.*停.*|.*結.*|.*行.*)/).findOne().click(); textMatches(/(.*確.*|.*定.*)/).findOne().click(); log(app.getAppName(packageName) + "應用已被關閉"); sleep(1000); back(); } else { log(app.getAppName(packageName) + "應用不能被正常關閉或不在後臺運行"); back(); }}function RunApp(){ toast("啟動支付寶") app.launchApp("支付寶"); //text("螞蟻森林").waitFor(); toast("啟動完成"); className("android.widget.TextView").text("付錢").waitFor(); //bounds(33,103,843,180).click(); className("android.widget.ViewFlipper").click(); sleep(1000); className("android.widget.TextView").desc("搜索").waitFor(); //bounds(231,76,905,207).setText("螞蟻森林"); className("android.widget.EditText").setText("螞蟻森林"); sleep(500); className("android.widget.FrameLayout").desc("搜索").click(); className("android.widget.TextView").text("螞蟻森林,為你在荒漠種下一棵真樹").waitFor(); sleep(500); //bounds(44,757,291,996).click(); className("android.widget.FrameLayout").clickable(true).depth(13).click(); toast("進入森林中..."); className("android.widget.Button").text("背包").waitFor(); sleep(1000); toast("進入完成"); while(true){ var dates = new Date(); if(dates.getHours() == startTime[0] && dates.getMinutes() - startTime[1] >=0 && dates.getMinutes() - startTime[1] < 2) { MyPower(); } else if(dates.getHours() == endTime[0] && dates.getMinutes() == endTime[1]) { toast("結束"); exit(); break; } else { toast("未到時間"); sleep(5000); } }}function MyPower(){ do { var powerList = className("android.widget.Button").textStartsWith("收集能量").find() powerList.forEach(function(item){ press(item.bounds().centerX(), item.bounds().centerY(), 80); toast("收取一次"); sleep(200); }); } while (powerList.length); toast("未成熟"); sleep(500);}//function FriendPower(){ //className("android.view.View").text("查看更多好友").click();// var res = findColorEquals(captureScreen(), "#1DA06E");// console.log(res);//}function main(){ device.wakeUp(); sleep(1000); swipe(500,1800,500,500,100); sleep(1000); gesture(1000, [540,1425], [250,1700],[560,1700],[540,2020],[840,1700]); sleep(1000); RunApp();}//FriendPower();//程序從這裡開始auto();alert("使用須知", "需開啟無障礙服務、通知欄權限,音量下鍵可中止腳本;本程序監聽狀態欄自動啟動,支持自動亮屏解鎖,並在指定時間內檢查能量。");alert("注意", "初次使用,程序中main()中的gesture()函數,是解鎖功能,需要修改成自己的鎖屏手勢。可通過打開開發者選項中的指針位置查看坐標。");setScreenMetrics(1080, 2340);console.show();var startTime = console.rawInput("請輸入能量開始查詢時間,如7.23:").split(".");var endTime = console.rawInput("請輸入能量開始查詢時間,如7.25:").split(".");console.log(">> 開始時間: "+startTime);console.log(">> 結束時間: "+endTime);sleep(1000);console.hide();toast("開始");events.observeNotification();events.on("notification", function(n){ log("收到新通知:\n 標題: %s, 內容: %s, \n包名: %s", n.getTitle(), n.getText(), n.getPackageName()); if(n.getPackageName()=="com.eg.android.AlipayGphone") { if(n.getTitle()=="你的能量快成熟了") main(); }});threads.start(function(){ //在子線程中調用observeKey()從而使按鍵事件處理在子線程執行 events.observeKey(); events.on("key_down", function(keyCode, events){ //音量鍵關閉腳本 if(keyCode == keys.volume_down){ exit(); } });});events.on("exit", function(){ toast("腳本已結束");});