對于一個依賴無障礙服務的應用來說,App關閉的時候就會關閉無障礙服務權限,以至于每次啟動都需要去手動打開一次無障礙服務,這無疑會讓人很抓狂.但是這對于用戶來說這又是安全的,否則各種流氓豈不是可以隨意操控你的手機了,有限制才會有安全...
今天的這篇文章呢,是利用一個系統的權限
android.permission.WRITE_SECURE_SETTINGS
這個權限對于開發安裝的人來說,都應該明白,如果我們直接在AndroidMainifast.xml中聲明,會報錯,原因就是我們不是系統應用,屬于第三方,所以沒有權限使用這個權限.但是如果我們使用adb調試來針對某一個app來授權,那就可以拿到這個權限了,授權的命令為:
adb shell pm grant PACKAGE_NAME android.permission.WRITE_SECURE_SETTINGS
其中PACKAGE_NAME為你要授權的應用包名.例如: org.autojs.autojspro
adb命令如何安裝到你的電腦上,如何使用我就不教了,自行百度吧.其他的廢話,我也不多說了,直接上我們今天的腳本代碼.
importClass(android.content.Context);
importClass(android.provider.Settings);
importClass(android.content.pm.PackageManager);
if (!checkSelfPermission("android.permission.WRITE_SECURE_SETTINGS")) {
toastLog("出錯了,請查看日志界面內容");
console.error("\\n您沒有為autojs/autojsPro授予WRITE_SECURE_SETTINGS權限!\\n"+
"授權方法: 您需要打開USB調試并連接一臺電腦,使用adb命令給autojs授權,命令為:\\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("命令已寫入到剪貼板");
exit();
}
if (auto.service == null) {
//這里沒有啟動無障礙服務 這里我啟動了autojs免費版和pro版的無障礙服務
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("您沒有為autojs/autojsPro授予WRITE_SECURE_SETTINGS權限");
exit();
}
}
/**
* 檢查自身是否開啟某權限
* @param {string} permission 權限名稱
*/
function checkSelfPermission(permission) {
return context.checkSelfPermission(permission) == PackageManager.PERMISSION_GRANTED
}
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
APP
+關注
關注
33文章
1573瀏覽量
72459 -
系統應用
+關注
關注
0文章
3瀏覽量
5130 -
adb
+關注
關注
1文章
35瀏覽量
10421
發布評論請先 登錄
相關推薦
HarmonyOS NEXT應用元服務開發Accessibility(信息無障礙)介紹
方面的數字鴻溝,使其更加方便地參與社會生活,享受數字發展帶來的便利。
Accessibility Kit(無障礙服務)提供應用適配無障礙的開放能力,以便應用可以更好的服務于
發表于 10-09 10:29
MIUI發布MIUI12.5無障礙觸感功能
12月30日,MIUI官方微博線上發布MIUI12.5無障礙觸感功能。無障礙觸感是通過手機線性振動馬達,向無障礙用戶傳遞準確信息的一種全新交互方式,可以有效提升視障用戶的操作效率。 小米是首家把觸感
工信部:年底將授予首批無障礙標識
今年一月,工業和信息化部正式啟動了“互聯網應用適老化及無障礙改造專項行動”,同時還發布了老年人一鍵呼入人工客服、電信服務營業廳愛心通道以及主流手機“老人模式”等三項重要適老化措施成果。首批公共
迅遠RFID無障礙通道門實現無障礙通道人員及物品的跟蹤管控
開放式無障礙快速門禁通道系統是一種新型的安防管理系統,可實現無障礙通道人員及物品的跟蹤管控。
讓每一個人受益,收獲更大的成功 | 一文了解無障礙體驗
的問題: 什么是無障礙? 它為什么重要?或者說,打造無障礙產品對團隊有何好處? Google 怎么幫助開發者打造無障礙體驗? 我的團隊該如何長期確保 "無障礙氛圍"? 本文接下來會一一
為應用打造更好的無障礙體驗
Android 應用的目標應該是讓所有人都可以使用,包括具有無障礙功能需求的人。 視力受損、色盲、聽力受損、精細動作失能的人、以及有認知障礙和許多其他殘疾的人可以使用 Android 設備來處
測試應用無障礙功能,助力構建適合更多人的精彩應用
效果,請使用本文檔中介紹的所有方法: 手動測試 :? 使用 Android 無障礙服務與您的應用互動。 使用分析工具進行測試 : 使用各種工具發現改進應用無障礙功能的機會。 自動化測試 : 在 Espresso 和 Robole
最佳實踐 | 助您提升應用的無障礙功能
某些使用 Android 設備的用戶具有不同于他人的無障礙功能需求。為了幫助具有共同的無障礙功能需求的特定人群,Android 框架為開發者創建無障礙服務提供了相關功能,這種
借助 Material Design,幫助您打造更好的無障礙應用 (上篇)
隨著時代的發展,"無障礙體驗" 對開發者的意義也愈發重大。我們準備了無障礙設計文章,幫助您為更多用戶打造精彩應用。本文是第一篇內容,將為您介紹輔助技術,層次結構,顏色和對比度等
借助 Material Design,幫助您打造更好的無障礙應用 (下篇)
隨著時代的發展,"無障礙體驗" 對開發者的意義也愈發重大,在 上一篇文章 中,我們為您介紹了無障礙布局和排版、文案等相關內容。本文將進一步為您介紹圖片、聲音和運動、實現無障礙
Google 無障礙功能更新 | 第二期
為了讓每個人都能體驗精彩世界,Google 無障礙團隊始終致力于打造更舒適的日常生活、更完善的無障礙體驗。我們希望通過專題系列視頻 "Google 無障礙功能更新"?與您分享近期無障礙
自啟動電路的工作原理 自啟動電路需要輸入嗎
自啟動電路(Auto Start Circuit)是一種用于自動啟動設備或系統的電路,其原理基于控制自動化技術和電子電路等基礎知識。在本文中將詳細解釋自啟動電路的工作原理以及所需的輸入。 自啟
評論