對(duì)于一個(gè)依賴(lài)無(wú)障礙服務(wù)的應(yīng)用來(lái)說(shuō),App關(guān)閉的時(shí)候就會(huì)關(guān)閉無(wú)障礙服務(wù)權(quán)限,以至于每次啟動(dòng)都需要去手動(dòng)打開(kāi)一次無(wú)障礙服務(wù),這無(wú)疑會(huì)讓人很抓狂.但是這對(duì)于用戶(hù)來(lái)說(shuō)這又是安全的,否則各種流氓豈不是可以隨意操控你的手機(jī)了,有限制才會(huì)有安全...
今天的這篇文章呢,是利用一個(gè)系統(tǒng)的權(quán)限
android.permission.WRITE_SECURE_SETTINGS
這個(gè)權(quán)限對(duì)于開(kāi)發(fā)安裝的人來(lái)說(shuō),都應(yīng)該明白,如果我們直接在AndroidMainifast.xml中聲明,會(huì)報(bào)錯(cuò),原因就是我們不是系統(tǒng)應(yīng)用,屬于第三方,所以沒(méi)有權(quán)限使用這個(gè)權(quán)限.但是如果我們使用adb調(diào)試來(lái)針對(duì)某一個(gè)app來(lái)授權(quán),那就可以拿到這個(gè)權(quán)限了,授權(quán)的命令為:
adb shell pm grant PACKAGE_NAME android.permission.WRITE_SECURE_SETTINGS
其中PACKAGE_NAME為你要授權(quán)的應(yīng)用包名.例如: org.autojs.autojspro
adb命令如何安裝到你的電腦上,如何使用我就不教了,自行百度吧.其他的廢話,我也不多說(shuō)了,直接上我們今天的腳本代碼.
importClass(android.content.Context);
importClass(android.provider.Settings);
importClass(android.content.pm.PackageManager);
if (!checkSelfPermission("android.permission.WRITE_SECURE_SETTINGS")) {
toastLog("出錯(cuò)了,請(qǐng)查看日志界面內(nèi)容");
console.error("\\n您沒(méi)有為autojs/autojsPro授予WRITE_SECURE_SETTINGS權(quán)限!\\n"+
"授權(quán)方法: 您需要打開(kāi)USB調(diào)試并連接一臺(tái)電腦,使用adb命令給autojs授權(quán),命令為:\\n"+
"adb shell pm grant "+context.getPackageName()+" android.permission.WRITE_SECURE_SETTINGS");
setClip("adb shell pm grant "+context.getPackageName()+" android.permission.WRITE_SECURE_SETTINGS");
toastLog("命令已寫(xiě)入到剪貼板");
exit();
}
if (auto.service == null) {
//這里沒(méi)有啟動(dòng)無(wú)障礙服務(wù) 這里我啟動(dòng)了autojs免費(fèi)版和pro版的無(wú)障礙服務(wù)
try {
var enabledServices = Settings.Secure.getString(context.getContentResolver(), Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES);
var Services = enabledServices + ":org.autojs.autojspro/com.stardust.autojs.core.accessibility.AccessibilityService"+
":org.autojs.autojs/com.stardust.autojs.core.accessibility.AccessibilityService";
Settings.Secure.putString(context.getContentResolver(), Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES, Services);
Settings.Secure.putString(context.getContentResolver(), Settings.Secure.ACCESSIBILITY_ENABLED, '1');
} catch (e) {
toastLog("您沒(méi)有為autojs/autojsPro授予WRITE_SECURE_SETTINGS權(quán)限");
exit();
}
}
/**
* 檢查自身是否開(kāi)啟某權(quán)限
* @param {string} permission 權(quán)限名稱(chēng)
*/
function checkSelfPermission(permission) {
return context.checkSelfPermission(permission) == PackageManager.PERMISSION_GRANTED
}
-
APP
+關(guān)注
關(guān)注
33文章
1566瀏覽量
72334 -
系統(tǒng)應(yīng)用
+關(guān)注
關(guān)注
0文章
3瀏覽量
5118 -
adb
+關(guān)注
關(guān)注
1文章
35瀏覽量
10405
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論