【问题标题】:How to fix HARDWARE_TEST permission error?如何修复 HARDWARE_TEST 权限错误?
【发布时间】:2013-02-24 01:29:22
【问题描述】:

我正在开发一个 Android 应用程序,它使用一些硬件部件,如相机或 Wi-Fi,并且我在清单中使用 HARDWARE_TEST 权限:

<uses-permission android:name="android.permission.HARDWARE_TEST">

我从来没有遇到过任何问题,但是现在突然当我 eclipse 和 manifiest 文件时,这一行中显示了一个新错误:

“权限只授予系统应用”

我必须修复它的唯一方法是删除这一行。

为什么会出现这个错误??我该如何解决? 谢谢

已编辑:

我找到了解决方案并回答了我自己的问题:

我的问题出在 android:targetSdkVersion 中,manifiest 的值为 15,并且 proyect 构建目标已检查 API 级别 16 (Android 4.1.2)

<uses-sdk
    android:minSdkVersion="2"
    android:targetSdkVersion="15" />

所以我已将 android:targetSdkVersion 值更改为 16,并且 Proyect 属性 > Android > “Proyect Buid Target”也检查了 16。

【问题讨论】:

  • 可能和here一样的问题

标签: android android-permissions


【解决方案1】:

Android 权限有几个permission protection level:正常、危险、系统和签名或系统。

signatureOrSystem 权限只能授予系统应用程序。对于签名级别的权限:

系统仅在请求应用程序时授予的权限 使用与声明的应用程序相同的证书进行签名 许可。如果证书匹配,系统自动 授予权限而不通知用户或请求 用户的明确批准。

这是权限定义语法。

HARDWARE_TEST 权限的定义如下:

<!-- Allows access to hardware peripherals.  Intended only for hardware testing -->
<permission android:name="android.permission.HARDWARE_TEST"
    android:permissionGroup="android.permission-group.HARDWARE_CONTROLS"
    android:protectionLevel="signature"
    android:label="@string/permlab_hardware_test"
    android:description="@string/permdesc_hardware_test" />

在Android 4.2是一个签名权限,所以只能授予具有相同签名的应用(由供应商签名)。因此,您的应用程序无法请求该权限。

如果您想直接操作硬件,您可能需要有根设备。

【讨论】:

    猜你喜欢
    • 2021-03-11
    • 1970-01-01
    • 2018-08-17
    • 2016-06-27
    • 2011-06-02
    • 2015-02-02
    • 1970-01-01
    • 2021-11-24
    • 1970-01-01
    相关资源
    最近更新 更多