衡阳派盒市场营销有限公司

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

安卓11之下的系統(tǒng)實現(xiàn)輸入法切換

汽車電子技術(shù) ? 來源:安卓腳本 ? 作者:稻草人 ? 2023-03-03 10:20 ? 次閱讀

對于輸入法的操作,每個腳本作者都逃不過去的一個坎,對于不同APP上的搜索框,亦或者是各種消息發(fā)送框...咳咳~都需要用到輸入法上的操作, 搜索和發(fā)送兩個按鈕, 其實觸發(fā)的都是回車按鈕,但是如果直接使用腳本發(fā)送KeyCode碼,也不會觸發(fā)這個回車按鈕.所以只能使用第三方輸入法來實現(xiàn),目前已知的可用腳本輸入法,有萌歆制作的一個叫腳本輸入法的app, 和 無名小姐魔改的百度輸入法,這兩個輸入法,都在應(yīng)用內(nèi),添加了一個靜態(tài)的事件監(jiān)聽,從而使外部的APP發(fā)送一條廣播來觸發(fā)輸入法上的按鈕功能.

百度輸入法修改后, 有幾十兆大小. 而萌歆的腳本輸入法,只有一兩兆大小,所以,如果你像我這種,不太喜歡用百度產(chǎn)品的人, 肯定是會選擇多安裝一種輸入法來備用,對于安卓11之上的系統(tǒng)用戶來說, autojsPro提供了一個方法來快速切換當(dāng)前手機上的輸入法.那么對低于安卓11的手機來說,就不是那么簡單了, 因為沒有足夠的權(quán)限,來切換輸入法了~

不過我們可以使用adb去給app授予系統(tǒng)權(quán)限,注意,這里的授予權(quán)限并不是一次性的,而是 授予后,只要你沒有卸載或者清除APP所有的數(shù)據(jù),那么這個權(quán)限是永久存在的,即便是你重啟了手機,也無所謂 .所以我比較推薦使用這種方式.

那么你可以通過下面這條命令,在電腦上對手機上的autojs進行授權(quán).

adb shell pm grant org.autojs.autojspro android.permission.WRITE_SECURE_SETTINGS

adb shell pm grant 后面跟的是你要授權(quán)APP的包名,然后后面的是要授予的權(quán)限.

當(dāng)你授權(quán)完畢后, 就可以使用AutojsPro自身來切換已經(jīng)安裝的輸入法了.那么具體的方法:

importClass( "android.content.Context" );
// 要切換輸入法的包名/服務(wù)的類名, 如果服務(wù)類名中包含包名那么包名可以替換成 . 來代替
// 例如 com.sohu.inputmethod.sogou.xiaomi/com.sohu.inputmethod.sogou.xiaomi.SogouIME
// 可以寫成 com.sohu.inputmethod.sogou.xiaomi/.SogouIME
let NewInputMethodName = "com.sohu.inputmethod.sogou.xiaomi/.SogouIME";
let imm = context.getSystemService( Context.INPUT_METHOD_SERVICE );
imm.setInputMethod( null, NewInputMethodName );

下面的代碼可以獲取到當(dāng)前手機已安裝輸入法的包名和服務(wù)類名:

//注意imm等同于上面的imm
let list = imm.getInputMethodList();
let inputMethodInfo = {};


for ( let i in list ) {
    let inputInfo = list.get(i);
    let inputPackageName = inputInfo.getPackageName();
    let inputServiceName = inputInfo.getServiceName();
    inputMethodInfo[ "input"+i ] = {};
    inputMethodInfo[ "input"+i ].packageName = inputPackageName;
    inputMethodInfo[ "input"+i ].serviceName = inputServiceName;
}
console.log( inputMethodInfo );

imm.setInputMethod(IBinder token, NewInputMethodName);

最后,對于代碼中的這一句代碼來說, 有人說必須有token傳入,才可以切換輸入法,但是我在我的平板上使用切換輸入法時,直接傳入的null,也可以成功的切換輸入法,這里的token代表的是什么,我沒有再往深處研究,如果你們傳入null后,無法切換輸入法,那再探討一下這個token的作用吧.

另外還有一種彈窗切換的方式可供選擇, 這種方式不需要有系統(tǒng)權(quán)限即可實現(xiàn).

imm.showInputMethodPicker();
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 輸入法
    +關(guān)注

    關(guān)注

    0

    文章

    48

    瀏覽量

    9723
  • APP
    APP
    +關(guān)注

    關(guān)注

    33

    文章

    1577

    瀏覽量

    72779
  • 腳本
    +關(guān)注

    關(guān)注

    1

    文章

    391

    瀏覽量

    14938
收藏 人收藏

    評論

    相關(guān)推薦

    C#中控制輸入法

    其實,在seaman_X提供的鏈接中,已經(jīng)對如何在WinForm中控制輸入法作了相當(dāng)詳細地介紹了。針對您所關(guān)心的兩個問題,即如何獲取系統(tǒng)中所有的輸入法,以及如何根據(jù)輸入語言及其他特殊要
    發(fā)表于 12-29 11:12

    中文輸入法在B超系統(tǒng)中的應(yīng)用

    中文輸入法在B超系統(tǒng)中的應(yīng)用本文對中文輸入法在B超系統(tǒng)中的實現(xiàn)進行了介紹。 在計算機迅速發(fā)展和普及的今天,用計算機對漢字進行
    發(fā)表于 11-30 10:15

    輸入法不能切換解決方法

    輸入法不能切換解決方法輸入法不能切換解決方法在輸入法圖標上右鍵(圖一),設(shè)置(圖二)。然后將默認輸入
    發(fā)表于 04-24 10:25

    在Labview中如何控制輸入法

    在寫程序中遇到一個問題:如何在進入程序時將輸入法更改為英文輸入法,一般默認是中文輸入法,當(dāng)按下鍵時,輸入法會跳出來,而程序則不會響應(yīng)這個按鍵。所以想在進入程序時,將
    發(fā)表于 11-26 15:47

    Orange Pi 4開發(fā)板在Ubuntu系統(tǒng)下如何安裝中文輸入法

    。【圖11】選擇Chinese【圖12】選擇Sunpinyin,點擊Add【圖13】成功添加了SunPinyin輸入法【圖14】打開瀏覽器【圖15】按住Ctrl鍵,再按空格鍵,切換到SunPinyin
    發(fā)表于 05-19 15:13

    【PIMF】OpenHarmony啃論文俱樂部——OpenHarmony標準系統(tǒng)輸入法以及中文拼音輸入法原理

    11組PIMF的成員。【本期看點】老子到此一游系列之《老子的白日夢——基于OpenHarmony的中文拼音輸入法》梗概本文主要內(nèi)容包括以下兩個方面:(1) OpenHarmony標準系統(tǒng)輸入
    發(fā)表于 05-23 11:02

    嵌入式中文輸入法設(shè)計

    本文比較了嵌入式系統(tǒng)中拼音輸入法和筆畫輸入法的優(yōu)缺點,介紹了嵌入式系統(tǒng)中的中文輸入法的基本設(shè)計思想。本文重點介紹拼音
    發(fā)表于 06-19 08:29 ?41次下載

    淺談輸入法編程

    首先我們需要明白輸入法是什么東西。目前常用的輸入法基本上有兩種類型:外掛式(如早期的萬能五筆)及輸入法接口式(Input Method Editor-IME)。外掛式比較簡單,就是一個exe文
    發(fā)表于 10-16 11:44 ?42次下載

    xp輸入法切換不了怎么辦?

    xp輸入法切換不了怎么辦? 一般是殺毒ctfmon.exe文件給刪除了。。 找一個這樣的文件,重新放置到C:WINDOWSsystem32目
    發(fā)表于 05-28 10:19 ?3151次閱讀

    手機中文輸入法

    手機中文輸入法              中文輸入法
    發(fā)表于 12-19 13:58 ?547次閱讀

    iTAP輸入法

    iTAP輸入法          iTAP起源:
    發(fā)表于 12-19 13:59 ?876次閱讀

    Pocket PC中漢字輸入法分析與實現(xiàn)

    嵌入式操作系統(tǒng)在 PDA 與智能電話等手持設(shè)備領(lǐng)域的應(yīng)用日益廣泛 如何在這些設(shè)備中方便 、快速輸入漢字需要解決 所以將目前 PC 平臺上的優(yōu)秀輸入法移植到 PDA 與智能電話中是一個具有實際意義
    發(fā)表于 04-18 09:47 ?0次下載

    百度成功用AI技術(shù)為輸入法賦能,實現(xiàn)AI+輸入法

    百度輸入法更是成功用AI技術(shù)為輸入法賦能,實現(xiàn)AI+輸入法,在最新的10.0軟件版本中,甚至能夠實現(xiàn)AI助聊這一黑科技功能。
    的頭像 發(fā)表于 12-25 09:24 ?2281次閱讀

    微信輸入法真的來了!百度輸入法、搜狗輸入法和訊飛會受影響嗎?

    盡管張小龍?zhí)岬轿⑿沛I盤不是為了搶奪輸入法市場,但考慮到微信的體量之大,不得不讓人進行聯(lián)想,微信鍵盤推出后,搜狗輸入法、百度輸入法、訊飛輸入法會受到?jīng)_擊嗎?會不會有大量用戶轉(zhuǎn)而使用微信鍵
    的頭像 發(fā)表于 12-19 16:53 ?1502次閱讀
    微信<b class='flag-5'>輸入法</b>真的來了!百度<b class='flag-5'>輸入法</b>、搜狗<b class='flag-5'>輸入法</b>和訊飛會受影響嗎?

    瑞芯微RK3566鴻蒙開發(fā)板Android11修改第三方輸入法為默認輸入法

    本文適用于觸覺智能所有支持Android11系統(tǒng)的開發(fā)板修改第三方輸入法為默認輸入法。本次使用的是觸覺智能的Purple Pi OH鴻蒙開源主板,搭載了瑞芯微RK3566芯片,類樹莓派
    的頭像 發(fā)表于 09-24 09:43 ?532次閱讀
    瑞芯微RK3566鴻蒙開發(fā)板Android<b class='flag-5'>11</b>修改第三方<b class='flag-5'>輸入法</b>為默認<b class='flag-5'>輸入法</b>
    百家乐官网玩法既规则| 24向山九宫格图| 网上百家乐是真的| 博彩公司| 三星百家乐官网的玩法技巧和规则| 百家乐官网唯一能长期赢钱的方法 | 百家乐官网大娱乐场开户注册| 百家乐压分规律| 大发888游戏官方下| 百家乐官网出千赌具| 视频百家乐游戏| 皇冠在线代理| 百家乐官网扑| 大发888捕鱼| 查看百家乐官网赌博| 成人百家乐的玩法技巧和规则 | 百家乐官网全程打庄| 打百家乐如何赢分| 万豪娱乐网| 24葬书-葬法| 百家乐娱乐城| 百家乐网上公式| 湖北省| 赌博中百家乐什么意思| 读书| 真人百家乐送钱| 最好的百家乐官网娱乐场| 猪猪网百家乐软件| 百家乐官网里面的奥妙| 真人百家乐大转轮| 噢门百家乐官网玩法| 百家乐那个平好| 百家乐官网二代理解| 德州扑克荷官招聘| 新澳门百家乐官网的玩法技巧和规则 | 百家乐官网网上赌博| 百家乐线上| 信誉百家乐官网平台| 大发888刮刮了下载| 百家乐官网破解分| 沙雅县|