有没有办法以编程方式确定Android设备是否内置了拼写检查程序?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了有没有办法以编程方式确定Android设备是否内置了拼写检查程序?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1755字,纯文字阅读大概需要3分钟。
内容图文
![有没有办法以编程方式确定Android设备是否内置了拼写检查程序?](/upload/InfoBanner/zyjiaocheng/726/71c07f77b7f64e1887fe159afa94a517.jpg)
我在places的couple中读过,三星设备上的EditText无法启用拼写检查……所以它必须是真的,对吧?如果是这样,可能还有其他设备也无法进行拼写检查,例如我妻子刚刚从Verizon购买的LG VK700平板电脑(请勿询问).
有没有办法以编程方式检测设备是否可以进行拼写检查?我想要一个用户可以打开或关闭它的选项,但如果无法打开则不能.我希望这个选项变灰了.
(谷歌搜索以编程方式确定Android设备是否可以拼写检查this,这看起来很有趣,但我不能证明大部分用户可能会关闭或忽略大量工作(这里是慢学习者),因为标记的单词会仅出现在与用户的“单词模式”匹配的单词列表中(例如,p?tt ?? n),用于解决单词拼图.)
解决方法:
根据Android Spell Checker Framework documentation,拼写检查服务应作为服务在应用程序的清单中公开,并带有特定的意图过滤器和元数据标签:
<service
android:label="@string/app_name"
android:name=".SampleSpellCheckerService"
android:permission="android.permission.BIND_TEXT_SERVICE" >
<intent-filter >
<action android:name="android.service.textservice.SpellCheckerService" />
</intent-filter>
<meta-data
android:name="android.view.textservice.scs"
android:resource="@xml/spellchecker" />
</service>
合理地说,我们应该能够通过尝试解决匹配的意图来检测是否安装了任何此类服务.
我没有三星设备来测试“未找到”的情况,但我认为这应该有效:
TextView tv = new TextView(this);
PackageManager pm = getPackageManager();
Intent spell = new Intent(SpellCheckerService.SERVICE_INTERFACE);
ResolveInfo info = pm.resolveService(spell, 0);
if (info == null) {
tv.setText("no spell checker found");
} else {
tv.setText("found spell checker " + info.serviceInfo.name + " in package " + info.serviceInfo.packageName);
}
无论我在“设置”中启用还是禁用拼写检查,我的Moto G(2013)都说:.
这与香草AOSP键盘相同.我认为有问题的三星手机用自己的键盘替换了这个包,而没有更换拼写检查服务?
请注意,即使您检测到匹配服务的存在,激活它的实际设置也可能因设备而异…
内容总结
以上是互联网集市为您收集整理的有没有办法以编程方式确定Android设备是否内置了拼写检查程序?全部内容,希望文章能够帮你解决有没有办法以编程方式确定Android设备是否内置了拼写检查程序?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。