Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/210.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
AndroidManifest.xml中的最大Android权限_Android_Xamarin_Permissions_Manifest - Fatal编程技术网

AndroidManifest.xml中的最大Android权限

AndroidManifest.xml中的最大Android权限,android,xamarin,permissions,manifest,Android,Xamarin,Permissions,Manifest,据我所知,添加大量权限不会导致问题。那么,为什么开发人员不应该要求所有可用的权限,包括不必要的权限呢 我注意到Android没有要求用户对某些权限的权限。原因是什么?您必须遵循权限最佳实践 您必须在清单中仅指定所需的权限。如果你要求的不是必需的或太多,那么用户很可能会在完全运行你的应用程序之前删除它 最好在第一次需要时请求每个权限或权限组。不过,如果只是几个权限,您可能可以在开始时立即请求它们 在清单中声明权限并不意味着它被授予,它只意味着应用程序将需要它。是的,你仍然需要要求每个人都被允许 一

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


我注意到Android没有要求用户对某些权限的权限。原因是什么?

您必须遵循权限最佳实践

  • 您必须在清单中仅指定所需的权限。如果你要求的不是必需的或太多,那么用户很可能会在完全运行你的应用程序之前删除它

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

  • 在清单中声明权限并不意味着它被授予,它只意味着应用程序将需要它。是的,你仍然需要要求每个人都被允许

  • 一个实际的例子。摄像头应用程序:

    • 第一次运行时,应要求提供存储和摄像头 权限,以便它可以拍摄照片并将其写入文件
    • 然后用户切换到视频模式,此时您可以请求 音频权限,因此可以使用音频录制视频
    • 可能应用程序的设置窗口中会有一个额外的选项,这可能会 允许在EXIF数据中保存GPS位置。那么,当访问这些 设置应用程序可能需要位置权限
  • 乍一看,这可能听起来像是在不同的地方提出了很多请求,但这是最佳实践所规定的。权限的请求方式不应让用户感到不知所措

    更多详细信息请参见下一链接:


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

    因为用一长串权限让用户无法掌握是很糟糕的ux,而且应用程序也很容易隐藏恶意权限,因为用户不太可能阅读该列表。这就是为什么它被更改为运行时权限,显式地向用户请求每个权限。那么,为什么当我在手机上运行我的应用程序时,我没有机会接受/拒绝任何权限?仅仅因为清单中有权限并不意味着它已被授予。运行时模型强制开发人员实现一个显式请求来激活每个权限,然后您可以选择接受/拒绝它。清单文件中的所有权限是否都应该向用户请求?仅当它们被分类为。