56

我注意到清单文件中有两种类型的权限,“permission”和“uses-permission”,如下图所示;

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

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

对于以下 4 个权限,当我将它们放入 manifest.xml 文件时,我应该使用哪些权限?uses-permissions还是permissions

android.permission.ACCESS_NETWORK_STATE

android.permission.ACCESS_WIFI_STATE

android.permission.INTERNET

android.permission.CHANGE_WIFI_MULTICAST_STATE
4

4 回答 4

68

为了

<permission>

文档指出:

声明可用于限制访问此应用程序或其他应用程序的特定组件或功能的安全权限。

因此,由于您正在访问 Android 的权限,因此您需要uses-permission。此元素的文档指出:

请求必须授予应用程序以使其正确运行的权限。

<permission>通常在进行自定义权限时使用(例如,在创建其他应用程序可以绑定的应用程序时,必须限制访问权限),并且<uses-permission>在您的应用程序实际上需要它通常没有的权限时使用。

于 2013-01-22T02:57:17.807 回答
30

让我们从“uses-permission...”开始:假设您想在应用程序中使用 GoogleMap 作为示例来查找任何办公室(如银行或任何其他办公室)的最近位置。你需要互联网。因此,您需要授予您的 android 设备访问 INTERNET 的权限。这是通过使用名为 .

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

现在来到“permission..”:它的作用是声明一个安全权限,可用于限制对该应用程序或其他应用程序的特定组件或功能的访问。如果您的应用程序需要其他应用程序的某些资源或某些功能,您可以通过给出特定的类或包来使用。

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

谢谢。有关更多信息,您可以阅读
http://developer.android.com/guide/topics/manifest/manifest-intro.html

于 2014-04-19T20:52:55.543 回答
5

简而言之,您需要的是使用许可声明。

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>

用于定义您自己的权限。

于 2015-07-02T03:38:04.990 回答
0

用外行的话来说,

<uses-permission>指定您的应用程序需要访问某个组件的权限,该权限受作为该组件所有者的另一个应用程序的限制。

<permission>指定您对组件施加的限制是组件所有者。

于 2019-02-28T09:57:58.887 回答