Android user版通過adb_enable開啟adb 調(diào)試 不提示對話框的流程分析
需求解讀
由于定制rom給用戶具體需求如下:
入工廠測試app自動打開adb調(diào)試模式,退出就關(guān)閉,防止客戶的用戶安裝其它應(yīng)用(直接通過改變Settings.Global.ADB_ENABLED字段) 打開usbdebug不提示彈出框 禁止調(diào)試圖標(biāo)出現(xiàn)在通知狀態(tài)欄過程分析
通過字段關(guān)閉和開啟usb調(diào)試模式
通過開啟開發(fā)者模式最終發(fā)現(xiàn)開啟或者關(guān)閉是改變?nèi)缦伦侄?
Settings.Global.putInt(getContentResolver(),Settings.Global.ADB_ENABLED, 0);
打開USBdebug不彈框流程
當(dāng)adb_enable為0時會關(guān)閉adb調(diào)試模式,為1是會有彈框提示點(diǎn)擊確認(rèn)時會默認(rèn)打開usb調(diào)試模式;通過代碼查找發(fā)現(xiàn)在frameworksbaseservicesusbjavacomandroidserverusbUsbDeviceManager.java中監(jiān)聽

發(fā)送消息handler消息

獲取消息,進(jìn)入如下方法

調(diào)取mDebuggingManager.setAdbEnabled(mAdbEnabled);目前就以ENABLED為例

收到消息創(chuàng)建線程:

監(jiān)聽

發(fā)送handler消息,得到相應(yīng)的key

進(jìn)一步調(diào)取

啟動對應(yīng)的activity,標(biāo)記為對應(yīng)的activity報名和類名

修改frameworksbasepackagesSystemUIsrccomandroidsystemuiusbUsbDebuggingActivity.java屏蔽授權(quán)彈框

禁止通知狀態(tài)欄usb顯示
/device/rockchip/xxxx/system.prop 添加 字段persist.adb.notify=0實(shí)現(xiàn)完成
總結(jié)
到此這篇關(guān)于Android user版通過adb_enable開啟adb 調(diào)試 不提示對話框的文章就介紹到這了,更多相關(guān)android 開啟adb 調(diào)試內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. 詳解Android studio 動態(tài)fragment的用法2. 基于android studio的layout的xml文件的創(chuàng)建方式3. 編程語言PHP在Web開發(fā)領(lǐng)域的優(yōu)勢在哪?4. 解決Android studio xml界面無法預(yù)覽問題5. 什么是python的自省6. Spring Boot和Thymeleaf整合結(jié)合JPA實(shí)現(xiàn)分頁效果(實(shí)例代碼)7. 圖文詳解vue中proto文件的函數(shù)調(diào)用8. Android如何加載Base64編碼格式圖片9. Springboot Druid 自定義加密數(shù)據(jù)庫密碼的幾種方案10. Vue封裝一個TodoList的案例與瀏覽器本地緩存的應(yīng)用實(shí)現(xiàn)

網(wǎng)公網(wǎng)安備