2013-01-22 168 views
38

我注意到清單文件中有兩種類型的權限,「權限」和「使用權限」,如下所示的兩種權限:在manifest.xml文件中使用權限與android權限的權限

<permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" /> 

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

對於以下4個權限,當我將它們放到我的manifest.xml文件中時,我會使用它嗎? uses-permissionspermissions

android.permission.ACCESS_NETWORK_STATE 

android.permission.ACCESS_WIFI_STATE 

android.permission.INTERNET 

android.permission.CHANGE_WIFI_MULTICAST_STATE 
+1

[AndroidManifest.xml中使用權限和權限標籤之間的差異]的可能重複(http://stackoverflow.com/questions/3850799/diffrences-between-uses-permission-and-permissions-tag-in-androidmanifest -xml) – Pankaj

回答

51

對於

<permission> 

documentation狀態:

聲明可用於限制訪問特定組件或本或其他應用功能的安全權限。

因此,由於您正在訪問Android的權限,因此您需要改爲uses-permission。此元素的文檔狀態如下:

請求必須授予應用程序的許可權,以使其可以按順序 授權該應用程序正常運行。

<permission>製作自定義權限時,通常使用(例如做一個應用程序,其他應用程序可以在領帶的時候,限制訪問是必須的),當你的應用程序實際上需要它不許可」 <uses-permission>使用通常沒有。

19

讓我們以「uses-permission ...」開頭:假設您想在您的應用程序中使用GoogleMap作爲示例,以查找任何辦公室(如銀行或任何其他辦公室)的最近位置。你需要互聯網。所以你需要授予你的Android設備訪問INTERNET的權限。這是通過使用android權限調用完成的。

<uses-permission android:name="android.permission.INTERNET" /> 

現在來看看「權限..」:它的作用是它宣稱可用於限制訪問特定組件或這或其他功能安全許可applications.If您的應用程序需要一些資源或來自其他應用程序的某些功能,可以通過給出具體的類或包來使用。

<permission android:name="com.example.project.DEBIT_ACCT" . . . /> 

謝謝。欲瞭解更多信息,你可以閱讀
http://developer.android.com/guide/topics/manifest/manifest-intro.html

+0

我不確定它的真實性,但不能將它們作爲安裝時授予的權限(一次)與運行時授予的權限(每次需要時)進行區分? – Dane411

4

總之,你需要的是使用權限聲明。

Androird Document現在有一個專門討論這兩種用法的頁面。

使用權限部分,它解釋說,

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.android.app.myapp" > 
    <uses-permission android:name="android.permission.RECEIVE_SMS" /> 
    ... 
</manifest> 

用於聲明什麼權限想使用。

雖然定義和執行權限你可以看到,

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.me.app.myapp" > 
    <permission android:name="com.me.app.myapp.permission.DEADLY_ACTIVITY" 
     android:label="@string/permlab_deadlyActivity" 
     android:description="@string/permdesc_deadlyActivity" 
     android:permissionGroup="android.permission-group.COST_MONEY" 
     android:protectionLevel="dangerous" /> 
    ... 
</manifest> 

用來定義自己的權限。

+0

該文檔已經在其他給出這個問題的答案中引用/鏈接了。這個答案不會給已經給出的東西增加新的東西。 – SteveFerg

+0

嗨SteveFerg所有三個答案都引用了較舊的文檔。這就是我在這裏更新它的原因。如果我錯了,請重新檢查引用的引述並讓我知道。 –

+0

具體來說,他們引用的文檔並不是專門針對問題提問者所述的問題,而我的完全關注的是Android的權限 –