前言
我慣用的是嘸蝦米輸入法,但是 Samsung Tab S7+ 在 DeX 模式下只能用三星輸入法,也就是只有注音輸入法,使得原本想拿 Tab S7+ 當輕便筆電用,卻因為不順手的輸入法導致工作效率大減。
就在查詢許多文章摸索著安裝完嘸蝦米並使用一段時間以後,一時不慎把 Termux 刪掉了,因此又回到了只能使用注音輸入法的狀態。想要重新來過卻一直遇到莫明的錯誤,在幾個月之間趁著工作空檔陸陸續續試了幾次未果,直到最近查到 Termux 的 Issues 中關於無法與 ADB Server daemon 取得連結的討論,才如願重新安裝嘸蝦米了。
從討論串中可以看到這是 Samsung 手機與平板特有的問題,其他品牌的手機並不會出現這個錯誤。
操作步驟
- 到 Google Play 安裝 GCIN 輸入法:它現在的名字是「TW 中文輸入法 注音/倉頡/大易/行列/語音/英數」,嘸蝦米所需要的 .gtab 檔請自行準備。
- 啟用「開發人員選項」並打開「無線偵錯」:原本「開發人員選項」是隱藏起來的,參考三星網站的教學,在「設定>關於手機>軟體資訊」連續點擊版本號碼,直至出現「開發者模式已啓用」 進入開發人員選項後,打開「無線偵錯(wireless debugging)」功能。
- 在 Termux 中安裝 ADB:apt update && apt install android-tools
- 使用 ADB 透過無線偵錯與平板本身配對並連結
- 先連上 Wi-Fi,並開啟「設定」視窗和 Termux 視窗,讓它們各佔螢幕的一半,因為等等要邊看著「設定」視窗裡的資訊,邊在 Termux 中輸入指令。
- 點選「無線偵錯」中的「使用配對碼配對裝置」就會跳出配對所需的 IP、PORT 以及配對碼,其中 PORT 是隨機跳動的。
- 輸入指令 adb pair IP:PORT 後再輸入配對碼,用來配對平板。
- 輸入指令 adb connect IP:PORT,用來連結平板。
- 修改預設輸入法為 GCIN
- 查詢現在的預設輸入法指令是「adb shell settings get secure default_input_method」
- 查詢所有已安裝的輸入法指令是「adb shell ime list」
- 更換輸入法的指令是「adb shell ime set "輸入法名稱"」
- GCIN 輸入法的名稱是:「com.hyperrate.gcinfree/.Gcin」
- 三星輸入法的名稱是:「com.samsung.android.honeyboard/.service.HoneyBoardService」
錯誤排除
概述
這是專屬於 Samsung 手機或平板的錯誤,當發現以下錯誤訊息時,要改以 fakeroot 設定環境變數,以及執行上述各個 adb 指令。
錯誤訊息
* daemon not running; starting now at tcp:5037* daemon started successfully* daemon still not runningerror: cannot connect to daemon at tcp:5037: Not a data message
解決方法
- 安裝 fakeroot:apt install fakeroot
- 設定環境變數:
- export ADB_SERVER_SOCKET=localfilesystem:/data/data/com.termux/files/adb_socket
- export ANDROID_NO_USE_FWMARK_CLIENT=1
- 執行 adb 指令:
- fakeroot adb pair <your device wifi address:pairing port>
- fakeroot adb connect <your device wifi address:wireless debug port>
注意事項與改進想法
- 一旦離開再重新進入 DeX 模式就會還原成三星輸入法,因此需要重新配對、連結、更換輸入法。
- 可以把指令寫成 shell script,這樣就不用特別記輸入法的路徑名稱。