RM新时代网站-首页

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

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

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

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

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

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

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

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

那么你可以通過(guò)下面這條命令,在電腦上對(duì)手機(jī)上的autojs進(jìn)行授權(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自身來(lái)切換已經(jīng)安裝的輸入法了.那么具體的方法:

importClass( "android.content.Context" );
// 要切換輸入法的包名/服務(wù)的類(lèi)名, 如果服務(wù)類(lèi)名中包含包名那么包名可以替換成 . 來(lái)代替
// 例如 com.sohu.inputmethod.sogou.xiaomi/com.sohu.inputmethod.sogou.xiaomi.SogouIME
// 可以寫(xiě)成 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)前手機(jī)已安裝輸入法的包名和服務(wù)類(lèi)名:

//注意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);

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

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

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

    關(guān)注

    0

    文章

    48

    瀏覽量

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

    關(guān)注

    33

    文章

    1573

    瀏覽量

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

    關(guān)注

    1

    文章

    389

    瀏覽量

    14858
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    C#中控制輸入法

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

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

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

    輸入法不能切換解決方法

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

    在Labview中如何控制輸入法

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

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

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

    【PIMF】OpenHarmony啃論文俱樂(lè)部——OpenHarmony標(biāo)準(zhǔn)系統(tǒng)輸入法以及中文拼音輸入法原理

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

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

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

    淺談輸入法編程

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

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

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

    手機(jī)中文輸入法

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

    iTAP輸入法

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

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

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

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

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

    微信輸入法真的來(lái)了!百度輸入法、搜狗輸入法和訊飛會(huì)受影響嗎?

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

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

    本文適用于觸覺(jué)智能所有支持Android11系統(tǒng)的開(kāi)發(fā)板修改第三方輸入法為默認(rèn)輸入法。本次使用的是觸覺(jué)智能的Purple Pi OH鴻蒙開(kāi)源主板,搭載了瑞芯微RK3566芯片,類(lèi)樹(shù)莓派
    的頭像 發(fā)表于 09-24 09:43 ?425次閱讀
    瑞芯微RK3566鴻蒙開(kāi)發(fā)板Android<b class='flag-5'>11</b>修改第三方<b class='flag-5'>輸入法</b>為默認(rèn)<b class='flag-5'>輸入法</b>
    RM新时代网站-首页