【问题标题】:Maximum Android permissions in AndroidManifest.xmlAndroidManifest.xml 中的最大 Android 权限
【发布时间】:2019-01-17 18:18:15
【问题描述】:

据我所知,添加很多权限不会导致问题。那么为什么开发人员不应该要求所有可用的权限,包括不必要的权限呢?

我注意到,对于某些权限,Android 不会询问用户的权限。这是什么原因?

【问题讨论】:

  • 因为用一长串权限压倒用户是糟糕的用户体验,而且应用程序可以很容易地隐藏恶作剧的权限,因为用户不太可能阅读该列表。所以这就是为什么它被改为运行时权限,明确地询问用户每个权限。 developer.android.com/distribute/best-practices/develop/…
  • 那么为什么当我在手机上运行我的应用程序时,我没有机会接受/拒绝任何权限?
  • 权限位于清单中并不意味着它已被授予。运行时模型强制开发者执行显式请求以激活每个权限,然后您可以选择接受/拒绝它。
  • Manifest 文件中的所有权限都应该向用户询问吗?
  • 仅当它们被归类为dangerous permissions

标签: android xamarin permissions manifest


【解决方案1】:

您必须遵循权限最佳做法。

  1. 您必须在清单中仅指定您需要的权限。如果您要求不必要或太多,那么用户很可能会在您的应用完全运行之前将其删除。

  2. 最好在第一次需要时请求每个权限或权限组。不过,如果只是几个权限,您可能可以在开始时立即请求它们。

  3. 在 Manifest 中声明 Permission 并不意味着它已被授予,它仅意味着应用程序需要它。是的,您仍然需要要求每个人都被授予。

  4. 一个实际的例子。相机应用:

    • 第一次运行时应该请求存储和摄像头 权限,因此它可以拍照并将其写入文件。
    • 然后用户切换到视频模式,此时您可以要求 音频权限,因此可以录制带音频的视频。
    • 可能应用程序在其设置窗口中可以有一个额外的选项,这可能 允许将 GPS 位置保存在 EXIF 数据中。所以,当访问这样的 设置应用可能会要求位置权限。

乍一看,这可能听起来像是在不同的点上提出了很多请求,但这是最佳实践所指定的方式。应以不会让用户不知所措的方式请求权限。

更多详情见下一个链接: https://developer.android.com/training/permissions/usage-notes

最后澄清一下。如果特定的 API 调用需要未授予的权限,则在执行此类 API 调用时会抛出异常。

【讨论】:

    猜你喜欢
    • 2013-06-01
    • 2021-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-08
    • 1970-01-01
    相关资源
    最近更新 更多