Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/214.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何修复硬件测试权限错误?_Android_Android Permissions - Fatal编程技术网

Android 如何修复硬件测试权限错误?

Android 如何修复硬件测试权限错误?,android,android-permissions,Android,Android Permissions,我正在开发一个android应用程序,它使用一些硬件部件,如摄像头或Wi-Fi,我正在manifiest中使用硬件测试权限: <uses-permission android:name="android.permission.HARDWARE_TEST"> 我从来没有遇到过这样的问题,但现在突然,当我在eclipse和manifiest文件中看到一个新的错误,如下所示: “权限仅授予系统应用” 我唯一能修复它的方法就是删除这一行 为什么会出现这种错误??我怎样才能修好它? 谢谢

我正在开发一个android应用程序,它使用一些硬件部件,如摄像头或Wi-Fi,我正在manifiest中使用硬件测试权限:

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

我从来没有遇到过这样的问题,但现在突然,当我在eclipse和manifiest文件中看到一个新的错误,如下所示:

“权限仅授予系统应用”

我唯一能修复它的方法就是删除这一行

为什么会出现这种错误??我怎样才能修好它? 谢谢

编辑:

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

我的问题是在android中:manifiest中的targetSdkVersion值为15,proyect构建目标的API级别为16(android 4.1.2)


因此,我已将android:targetSdkVersion值更改为16,并且Proyect properties>android>“Proyect Buid Target”也选中了16。

android权限有几种:正常、危险、系统和签名或系统

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

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

下面是权限定义语法

以下是硬件测试权限的定义:

<!-- 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中,它是一个签名权限,因此只能授予具有相同签名(由供应商签名)的应用程序。因此,您的应用程序无法请求该权限

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

可能和你的问题一样
<!-- 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" />