# content query --uri content://com.android.settings.googleassist/google_assist_table/
0 : 只有在螢幕亮的時候可以使用
1 : 允許螢幕關閉時使用
currentMode:0 : 會參考 launchPkg, launchCls, luanchUri 決定要怎麼啟動指定 app
5 : 會參考 specialAction 的值啟用指定功能
specialAction:1 : 喚醒 google 助理
2 : google 助理及個人最新動態
3 : google 助理對講機模式
4 : 勿擾模式
5 : 聲音模式
6 : 自動旋轉
7 : 手電筒
8 : 螢幕擷圖
11 : 開啟相機
12 : 開啟相機前鏡頭
13 : Wi-Fi
14 : 無線基地台
15 : 藍牙
16 : 錄音
所以假設我們想要設定『按住按鈕』為『開啟相機』,那麼我們只要修改 uid=3 與 uid=6 的內容即可。根據前面的說明,可以這麼使用 content 指令:# content update --uri content://com.android.settings.googleassist/google_assist_table/3 --bind specialAction:i:11 --bind currentMode:i:5 --bind launchUri:s:NULL --bind launchPkg:s:NULL
# content update --uri content://com.android.settings.googleassist/google_assist_table/6 --bind specialAction:i:11 --bind currentMode:i:5 --bind launchUri:s:NULL --bind launchPkg:s:NULL
--bind specialAction:i:11 代表將 specialAction 這個欄位修改為整數 (i) 數值 11。# content update --uri content://com.android.settings.googleassist/google_assist_table/3 --bind specialAction:i:-1 --bind currentMode:i:0 --bind launchPkg:s:com.example.app --bind launchUri:s:"#Intent;component=com.example.app/.MainActivity;end"
launchUri 的其實就是 Intent 的內容,開頭為 #Intent; ,中間加入 intent 的參數,此為 component 代表指定丟給 com.example.app 裡面的 MainActivity,也可以視需求加入 action 與 category,最後再用 end 做結尾,參數間用分號 ';' 區隔。
至於其他欄位的用途,就等大家來發掘了,感覺可以做出不少神奇的應用。
Happy Hacking ! 🙂