目录:
Android 6.0 Marshmallow技术上已经整整一周了。 (如果你算一下代码丢弃的日期,那就更少了。我想。)但它已经处于开发人员预览状态数月,开发人员已经能够提交使用新API级别的应用程序(以及新的权限)现在很少。
因此,如果您在Nexus手机上运行Marshmallow(而且您确实应该这样做),那么随着应用程序的更新,您将开始使用新的权限方案。 我最初的一个例子就是推特。 (并称赞Twitter是早期的推特之一。)
Twitter如何做到……
考虑一下这个屏幕截图,您将在第一次打开Twitter时看到它。 Twitter希望使用我当前的位置来自定义我的体验。 好啊,为什么不。 我喜欢我的位置,我喜欢更好的体验。 我会允许的。
然后 Marshmallow的新许可开始了。我是否想让Twitter访问我想要让它访问的东西? 是的,我愿意。 这就是我第一次点击OK的原因。
问题是,Twitter的第一个对话框实际上与实际允许我的位置的权限没有任何关系。 它只是触发系统对话框。 但它的措辞比Android权限对话框更友好。
考虑:
Twitter:“Twitter希望使用您当前的位置来定制您的体验。”
Android:“允许Twitter访问此设备的位置?”
提出同样问题的两个类似许可的问题 - 但只有一个实际允许任何问题。
前者告诉我它想做什么 - 更重要的 是 它 为什么 要这样做。 后者大多是同样简单但模糊的许可 - 说起来我们已经厌恶Android了。 我想,它有点需要。 但这就是申请许可的应用程序 - 来自Twitter的第一个对话框 - 变得更加重要。 Twitter不应该立即给我“不允许/不好”选项,而是应该再用一句话来告诉我下一步是什么。 “Twitter希望使用您当前的位置来定制您的体验。 如果您对此 感觉 很酷,请在下一个屏幕上点击”允许“ 。 或者那种效果。 然后 你就可以获得更好的权限请求上下文,并且用户已经为即将发生的事情做好了准备 - 这并不是那么重复。
这是用户的两个难点,这很难。 但这是一次性的痛点。 我认为,让我们更多地关注应用程序可能需要的危险(即技术术语)是值得的。 另一方面,图像和上下文可能意味着您不需要告诉我您将要求相机的许可,因为 我只是点击了相机图标 。
以下是谷歌的说法:
在某些情况下,您可能希望帮助用户了解您的应用需要权限的原因。 例如,如果用户启动摄影应用程序,则用户可能不会对应用程序请求使用摄像头的许可感到惊讶,但是用户可能不理解应用程序想要访问用户的位置或联系人的原因。 在您申请许可之前,您应该考虑向用户提供说明。 请记住,您不希望用解释来压倒用户; 如果您提供太多解释,用户可能会发现应用程序令人沮丧并将其删除。
Facebook如何做到……
让我们看一下Facebook - 另一个已经针对新权限更新的应用程序。
啊,罕见的双重许可请求。 这是您在点击相机图标进行新状态更新时从Facebook获得的内容。 好吧,我有点作弊 - 如果您第一次拒绝存储权限,当它试图填充图库中的缩略图时,您会收到此双重通知。 但它做得很好。 Facebook告诉你它想要什么,以及为什么它想要它。
然后你会再次重复自己。 是的,我希望Facebook有权让我的手机做点什么。
但是,再次,这是第一个“允许”按钮我有问题。 它实际上不允许系统对话框以外的任何内容 再次 向您询问 完全相同的内容 。 你只需要做一次。
环聊如何做到……
这是另一个例子,这次是在Google Hangouts中。 在对话中点击相机或图库图标只会触发系统对话框。 在授予权限的实际请求之前没有多余的请求。 (而且,我认为那很好。当我点击相机图标时,获得相机许可的请求已经有了上下文。)
我觉得Google 真的 做得很好的是这个第一次获得联系人权限的解释器,这个应用程序完全可以运行。 首先,它说明了 为什么 它需要访问您的联系人。 点击“下一步”然后显示系统权限请求。 它说“下一步”而不是“允许”是那里真正重要的。 一个流入另一个。 您显然不希望像这样全屏执行 每个 权限请求。 但是对于一些重要的东西,可以在第一次运行时呈现,这是非常好的完成。
切换到运行时权限是一个很重要的权限。 但它们可能是一个很小的学习过程。
我确实在这里从一个小山丘做了一个山。 你只需要第一次通过这个应用程序。 但权限很重要。 (我认为切换到运行时权限是一个很好的。)权限的解释是好的。 即使是双重停止也可以让你在跳跃之前让你看起来被忽视。 向用户解释权限,只是不要让他们认为他们已经允许一次,只是让他们 实际上 在系统请求中稍后再做一次。 我只是不喜欢重复自己就是全部。
和往常一样,您可以随时撤销权限。 如果您这样做,应用程序将在您下次尝试使用该功能时再次请求您的许可。
重点是,我们为用户提供了一些新的东西来适应这里。 但是,应用程序开发人员也是如此。
更新:为了更加技术化地倾听所有这些 - 并且顺便说一下,确认Facebook和Twitter正在做事情的方式还不是很理想 - 请查看Android开发者Backstage播客的第33集。