0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

安卓11之下的系统实现输入法切换

汽车电子技术 来源:安卓脚本 作者:稻草人 2023-03-03 10:20 次阅读

对于输入法的操作,每个脚本作者都逃不过去的一个坎,对于不同APP上的搜索框,亦或者是各种消息发送框...咳咳~都需要用到输入法上的操作, 搜索和发送两个按钮, 其实触发的都是回车按钮,但是如果直接使用脚本发送KeyCode码,也不会触发这个回车按钮.所以只能使用第三方输入法来实现,目前已知的可用脚本输入法,有萌歆制作的一个叫脚本输入法的app, 和 无名小姐魔改的百度输入法,这两个输入法,都在应用内,添加了一个静态的事件监听,从而使外部的APP发送一条广播来触发输入法上的按钮功能.

百度输入法修改后, 有几十兆大小. 而萌歆的脚本输入法,只有一两兆大小,所以,如果你像我这种,不太喜欢用百度产品的人, 肯定是会选择多安装一种输入法来备用,对于安卓11之上的系统用户来说, autojsPro提供了一个方法来快速切换当前手机上的输入法.那么对低于安卓11的手机来说,就不是那么简单了, 因为没有足够的权限,来切换输入法了~

不过我们可以使用adb去给app授予系统权限,注意,这里的授予权限并不是一次性的,而是 授予后,只要你没有卸载或者清除APP所有的数据,那么这个权限是永久存在的,即便是你重启了手机,也无所谓 .所以我比较推荐使用这种方式.

那么你可以通过下面这条命令,在电脑上对手机上的autojs进行授权.

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

adb shell pm grant 后面跟的是你要授权APP的包名,然后后面的是要授予的权限.

当你授权完毕后, 就可以使用AutojsPro自身来切换已经安装的输入法了.那么具体的方法:

importClass( "android.content.Context" );
// 要切换输入法的包名/服务的类名, 如果服务类名中包含包名那么包名可以替换成 . 来代替
// 例如 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 );

下面的代码可以获取到当前手机已安装输入法的包名和服务类名:

//注意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的作用吧.

另外还有一种弹窗切换的方式可供选择, 这种方式不需要有系统权限即可实现.

imm.showInputMethodPicker();
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 输入法
    +关注

    关注

    0

    文章

    48

    浏览量

    9713
  • APP
    APP
    +关注

    关注

    33

    文章

    1577

    浏览量

    72707
  • 脚本
    +关注

    关注

    1

    文章

    391

    浏览量

    14925
收藏 人收藏

    评论

    相关推荐

    C#中控制输入法

    其实,在seaman_X提供的链接中,已经对如何在WinForm中控制输入法作了相当详细地介绍了。针对您所关心的两个问题,即如何获取系统中所有的输入法,以及如何根据输入语言及其他特殊要
    发表于 12-29 11:12

    中文输入法在B超系统中的应用

    中文输入法在B超系统中的应用本文对中文输入法在B超系统中的实现进行了介绍。 在计算机迅速发展和普及的今天,用计算机对汉字进行
    发表于 11-30 10:15

    输入法不能切换解决方法

    输入法不能切换解决方法输入法不能切换解决方法在输入法图标上右键(图一),设置(图二)。然后将默认输入
    发表于 04-24 10:25

    在Labview中如何控制输入法

    在写程序中遇到一个问题:如何在进入程序时将输入法更改为英文输入法,一般默认是中文输入法,当按下键时,输入法会跳出来,而程序则不会响应这个按键。所以想在进入程序时,将
    发表于 11-26 15:47

    Orange Pi 4开发板在Ubuntu系统下如何安装中文输入法

    。【图11】选择Chinese【图12】选择Sunpinyin,点击Add【图13】成功添加了SunPinyin输入法【图14】打开浏览器【图15】按住Ctrl键,再按空格键,切换到SunPinyin
    发表于 05-19 15:13

    【PIMF】OpenHarmony啃论文俱乐部——OpenHarmony标准系统输入法以及中文拼音输入法原理

    11组PIMF的成员。【本期看点】老子到此一游系列之《老子的白日梦——基于OpenHarmony的中文拼音输入法》梗概本文主要内容包括以下两个方面:(1) OpenHarmony标准系统输入
    发表于 05-23 11:02

    嵌入式中文输入法设计

    本文比较了嵌入式系统中拼音输入法和笔画输入法的优缺点,介绍了嵌入式系统中的中文输入法的基本设计思想。本文重点介绍拼音
    发表于 06-19 08:29 41次下载

    浅谈输入法编程

    首先我们需要明白输入法是什么东西。目前常用的输入法基本上有两种类型:外挂式(如早期的万能五笔)及输入法接口式(Input Method Editor-IME)。外挂式比较简单,就是一个exe文
    发表于 10-16 11:44 42次下载

    xp输入法切换不了怎么办?

    xp输入法切换不了怎么办? 一般是杀毒ctfmon.exe文件给删除了。。 找一个这样的文件,重新放置到C:WINDOWSsystem32目
    发表于 05-28 10:19 3144次阅读

    手机中文输入法

    手机中文输入法              中文输入法
    发表于 12-19 13:58 546次阅读

    iTAP输入法

    iTAP输入法          iTAP起源:
    发表于 12-19 13:59 873次阅读

    Pocket PC中汉字输入法分析与实现

    嵌入式操作系统在 PDA 与智能电话等手持设备领域的应用日益广泛 如何在这些设备中方便 、快速输入汉字需要解决 所以将目前 PC 平台上的优秀输入法移植到 PDA 与智能电话中是一个具有实际意义
    发表于 04-18 09:47 0次下载

    百度成功用AI技术为输入法赋能,实现AI+输入法

    百度输入法更是成功用AI技术为输入法赋能,实现AI+输入法,在最新的10.0软件版本中,甚至能够实现AI助聊这一黑科技功能。
    的头像 发表于 12-25 09:24 2274次阅读

    微信输入法真的来了!百度输入法、搜狗输入法和讯飞会受影响吗?

    尽管张小龙提到微信键盘不是为了抢夺输入法市场,但考虑到微信的体量之大,不得不让人进行联想,微信键盘推出后,搜狗输入法、百度输入法、讯飞输入法会受到冲击吗?会不会有大量用户转而使用微信键
    的头像 发表于 12-19 16:53 1490次阅读
    微信<b class='flag-5'>输入法</b>真的来了!百度<b class='flag-5'>输入法</b>、搜狗<b class='flag-5'>输入法</b>和讯飞会受影响吗?

    瑞芯微RK3566鸿蒙开发板Android11修改第三方输入法为默认输入法

    本文适用于触觉智能所有支持Android11系统的开发板修改第三方输入法为默认输入法。本次使用的是触觉智能的Purple Pi OH鸿蒙开源主板,搭载了瑞芯微RK3566芯片,类树莓派
    的头像 发表于 09-24 09:43 520次阅读
    瑞芯微RK3566鸿蒙开发板Android<b class='flag-5'>11</b>修改第三方<b class='flag-5'>输入法</b>为默认<b class='flag-5'>输入法</b>