2013-03-08 88 views
0

我正在開發,它使用某些硬件部件,如照相機或Wi-Fi的Android應用程序,和我使用HARDWARE_TEST許可在manifiest:如何修復HARDWARE_TEST權限錯誤?

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

我從未有過的任何問題,但現在突然,當我Eclipse和manifiest文件,顯示在該行新的錯誤:

「權限僅授予系統應用」

我必須去解決它刪除此行的唯一方法。

爲什麼這個錯誤?我該如何解決它? 感謝

編輯:

我已經找到了解決方案,並回答我的問題:

我的問題是在android系統:在manifiest這是15和proyect構建目標targetSdkVersion值檢查API級別16(的Android 4.1.2)

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

所以我已經改變機器人:targetSdkVersion值16個屬性Proyect>的Android> 「Proyect打造專業化目標」 CHEC也是十六歲。

+0

可能與[這裏]相同的問題(http://stackoverflow.com/questions/13801984/permission-is-only-granted-to-system-app) – PCoder 2013-03-08 13:33:14

回答

0

有幾個permission protection level Android的權限:正常,危險,系統和signatureOrSystem。

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版本的簽名許可,所以它只能被授予具有相同簽名與APP(由供應商簽署) 。所以你的應用程序不能請求這個權限。

如果你想直接操作硬件,你可能需要一個根目錄的設備。