声明权限

每个Android应用都在有限访问沙箱中运行。如果应用程序需要使用自己的沙盒外的资源或信息,则应用程序必须请求相应的权限。您声明您的应用程序需要许可,方法是列出应用程序清单中的权限。

根据许可的敏感程度,系统可能自动授予权限,或者设备用户可能必须授予该请求。例如,如果您的应用程序请求打开设备手电筒的权限,系统会自动授予该权限。但如果您的应用程序需要阅读用户的联系人,系统会要求用户批准该权限。根据平台版本,用户在安装应用程序(Android 5.1及更低版本)或运行应用程序时(Android 6.0及更高版本)上授予权限。

确定您的应用程序需要哪些权限 在开发应用程序时,您应该注意到您的应用程序正在使用需要许可的功能。通常,当应用程序使用应用程序不创建的信息或资源,或执行影响设备或其他应用程序的行为的操作时,应用程序将需要权限。例如,如果应用需要访问互联网,请使用设备相机或打开或关闭Wi-Fi,该应用需要适当的许可。有关系统权限的列表,请参阅正常和危险权限。

您的应用只需要直接执行操作的权限。如果您的应用程序要求其他应用执行任务或提供信息,则您的应用程序不需要权限。例如,如果您的应用需要阅读用户的通讯录,则该应用需要该READ_CONTACTS权限。但是,如果您的应用程序意图从用户的联系人应用程序请求信息,则您的应用程序不需要任何权限,但联系人应用程序确实需要具有该权限。有关详细信息,请参阅考虑使用意图。

添加权限到清单 要声明您的应用程序需要许可,请将 元素放在应用程序清单中,作为顶级 元素的子代。例如,需要发送短信的应用程序将在清单中显示此行:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.example.snazzyapp">

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


    <application ...>
        ...
    </application>

</manifest>

声明权限后系统的行为取决于权限的多么敏感。如果权限不影响用户隐私,系统将自动授予权限。如果权限可能授予对敏感用户信息的访问权限,系统将要求用户批准该请求。有关不同类型权限的更多信息,请参阅 普通和危险权限。

reference: https://developer.android.com/training/permissions/declaring.html

Last updated