java.lang.SecurityException:未经许可 android.permission.BIND_INPUT_METHOD 仅适用于 <=2.2

2024-01-10

我有一个非常不寻常的例外。问题是我有这个应用程序,它有一个启动按钮

 InputMethodService

像这样开始

public class MyGroovyIme extends InputMethodService {

这就是它在清单上的样子。

  <service
        android:name=".MyGroovyIme"
        android:enabled="true"
        android:exported="true"
        android:permission="android.permission.BIND_INPUT_METHOD" >
        <intent-filter>
            <action android:name="android.view.InputMethod" />
            <!-- <category android:name="android.intent.category.DEFAULT" /> -->
        </intent-filter>

        <meta-data
            android:name="android.view.im"
            android:resource="@xml/method" />
    </service>

这就是我开始服务的方式

  void startServer() {
    Log.v(TAG, "Starting service...");
    Intent serviceIntent = new Intent(this, MyGroovyIme.class);
    startService(serviceIntent);
    Log.v(TAG, "Starting service...success!!!");
    // this.finish();
    Log.v(TAG, "finish called...");
}

当我在平板电脑(Moto XOOM,它的 3.2)上执行此操作时,整个设置就像一个魅力,但是当我在运行 2.2 和 2.1 的设备上执行此操作时(我没有在 2.3 上尝试过,也无法使用模拟器),这就是我的意思得到

 java.lang.SecurityException: Not allowed to start service Intent { cmp=com.spp.ime.demo/.MyGroovyIme } without permission android.permission.BIND_INPUT_METHOD
at android.app.ContextImpl.startService(ContextImpl.java:840)
at android.content.ContextWrapper.startService(ContextWrapper.java:336)
at com.spp.ime.demo.GROOVY_IME_DEMOActivity.startServer(GROOVY_IME_DEMOActivity.java:137)
at com.spp.ime.demo.GROOVY_IME_DEMOActivity.onStartClick(GROOVY_IME_DEMOActivity.java:104)
at com.spp.ime.demo.GROOVY_IME_DEMOActivity.onClick(GROOVY_IME_DEMOActivity.java:67)
at android.view.View.performClick(View.java:2408)
at android.view.View$PerformClick.run(View.java:8816)
at android.os.Handler.handleCallback(Handler.java:587)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:4633)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
at dalvik.system.NativeStart.main(Native Method)

我确实理解安全问题,但所有设备不应该都一样吗?或者我是否缺少特定于版本


经过长时间的搜索没有找到可靠的答案,仍然没有得到确切的原因。 但仔细检查新功能后发现,后续版本中添加的硬件功能可能导致了 Android 操作系统的这种宽大处理。 这是描述 Android 主要更新的链接 here http://en.wikipedia.org/wiki/Android_version_history

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java.lang.SecurityException:未经许可 android.permission.BIND_INPUT_METHOD 仅适用于 <=2.2 的相关文章

随机推荐

  • 使用 DbSet 应用 OrderBy

    我正在尝试使用通用存储库实现分页和排序 如何在 DbSet 中将主键列作为默认按列排序 DbSet Context Set
  • 获取唤醒我的 Activity 的 Intent

    我正在开发一个包含广播接收器的应用程序 广播接收者在 onReceive 上设置一个通知 其中包含一个待处理的 Intent Intent updateHistoryIntent new Intent this NotificationsH
  • IntelliJ 的“UML 支持”插件

    我肯定错过了什么 我在读本文 https www jetbrains com idea help working with diagrams html它说有一个名为 UML Support 的插件默认启用 我没有它 所以我转到 首选项 gt
  • 如何对 HTML 标记属性使用多行值? (即如何转义换行符?)

    如何在 HTML 标记属性中包含换行符 例如 a href somepage html some link a Edit 抱歉 例子不好 如果标签碰巧不在 javascript 中怎么办 比如说
  • 类型 'K' 不能用于索引类型 '{ [key in keyof K]: V; }'.ts(2536)

    我想创建一个从自定义对象类型返回新对象的方法 type K represent the type of key in an object type V represent the type of value in an object cla
  • 使用unix终端解析XML

    有时我需要快速从 XML 文件中提取一些任意数据以放入 CSV 格式 在 Unix 终端中执行此操作的最佳实践是什么 我想要一些代码示例 那么例如我怎样才能解决以下问题 XML 输入示例
  • 分析递归算法 T(n) = T(n - 1) + T(n - 2) + T(n -3)?

    于是 有人发了这个question https stackoverflow com questions 17239861 how would i get the order of algorithm tn tn 1tn 2 tn 3 com
  • 对象当前正在其他地方使用

    我收到此错误 看起来是因为不同的线程正在访问同一个 Bitmap 对象 然而我到处都使用锁 public class MySingleInstanceClass private Object locker new Object privat
  • 添加将 Excel 数据粘贴到 Django 表单中的功能

    我目前有一个 Django 表单 它有 N 行 x 12 列的表格形状的文本框 用户可以一次填充此表单一个文本框 注意 该表仅显示 9 列 但我使用的实际表格是 12 列
  • boost::asio::ip::tcp::socket 没有读取任何内容

    这实际上是我在套接字编程中的第一个程序 除了复制粘贴教程代码并享受乐趣之外 无论如何它都不起作用 我想我已经仔细阅读了文档 但也许还不够 我怀疑我使用socket read some in read message 因为我的有问题的程序停在
  • 从 jsonfile 数据创建多个 Chart.js 图表

    我使用 python 创建了一个 json 文件 它是一个列表列表 每个子列表都有一个 Chart js 图表的数据 即chartObject 0 has chartObject 0 0 and chartObject 0 1 对于 x 和
  • Android 如何从 facebook 获取用户关于我的信息

    我想在 Facebook 应用程序中获取 user about me 权限的信息 我能够获取电子邮件 位置 但我尝试获取 about me 它只提供 id 我想要所有信息 我怎样才能做到这一点 我就是这样做的 bundle putStrin
  • 不同JDK版本的Maven编译

    我的应用程序分为使用 Java 1 6u45 和 Java 1 8 的用户 我们的问题是我们无法指定项目系统库并且同时对代码有两种不同的编译器设置 项目结构 Project gt gt src main java com us javafx
  • 正确对齐控件

    我想调整我正在开发的网站上相同控件的外观 但似乎进展不太顺利 我想使用 CSS 来正确对齐控件 我想让复选框和标签左对齐 然后留一点空间 然后文本框就来了 另外我希望所有文本框垂直对齐 如何在不使用表格的情况下使用 css 来做到这一点 预
  • 执行 Excel Interop 的 C# 控制台应用程序 - 按计划任务运行时失败 -System.UnauthorizedAccessException

    正如标题所述 我有一个 C 控制台应用程序 它使用互操作性来打开 Excel 并创建新的工作簿 通过命令行运行控制台应用程序时 代码工作正常 但是 通过计划任务运行控制台应用程序时会引发此异常 System UnauthorizedAcce
  • React 组件中锚标记中的下载属性[重复]

    这个问题在这里已经有答案了 我将文件存储在云中 因此在上传过程中它们会获得前缀 使其名称独一无二 例如 如果我上传一个名为test txt 在上传过程中它被保存为7ea205f01ae5 test txt 值得注意的是 我确实捕获并保存了原
  • 获取 Clojure 参数列表

    我想要一些东西来给我传递给函数的实际值的序列 类似于论点 https developer mozilla org en US docs Web JavaScript Reference Functions and function scop
  • 将变量从一个 PHP 页面发送到另一页面

    我正在构建一个测验 Web 应用程序 该应用程序是从我的服务器上的数据库动态生成的 我几乎已经实现了所有功能 唯一缺少的部分是使其能够提供多个测验 现在我必须手动编写代码 quiz id 1 quiz title geography 在 q
  • 如何在 SQL 中分解具有相同子子名称的两个 xml 标签

    我创建了一个脚本 它从 SQL 中的表中获取数据并生成 XML 输出 2 个标签的父标签 子标签和子标签都是相同的 SQL 脚本将它们作为一个 XML 值而不是 2 个输出 SELECT Request TransactionRef AS
  • java.lang.SecurityException:未经许可 android.permission.BIND_INPUT_METHOD 仅适用于 <=2.2

    我有一个非常不寻常的例外 问题是我有这个应用程序 它有一个启动按钮 InputMethodService 像这样开始 public class MyGroovyIme extends InputMethodService 这就是它在清单上的