我正在使用 Android Marshmallow READ_PHONE_STATE 权限,我想更改权限请求中显示的文本。
默认情况下它显示:
允许 [App name] 拨打和管理电话吗?
但我用它来获取device id
and sim serial number
,所以我认为最好更改请求消息。有谁知道怎么做(一些特殊功能或其他东西)?
或者我只需要为此实现一个独立Dialog
的?
非常感谢。
我正在使用 Android Marshmallow READ_PHONE_STATE 权限,我想更改权限请求中显示的文本。
默认情况下它显示:
允许 [App name] 拨打和管理电话吗?
但我用它来获取device id
and sim serial number
,所以我认为最好更改请求消息。有谁知道怎么做(一些特殊功能或其他东西)?
或者我只需要为此实现一个独立Dialog
的?
非常感谢。
不,您不能更改对话框中的文本。系统默认实现。您可以在请求之前提供有关权限的简要说明。这样,用户将确切地知道您将要使用它来做什么。
请求权限
如果您的应用需要应用清单中列出的危险权限,则必须要求用户授予该权限。Android 提供了几种可用于请求权限的方法。调用这些方法会打开一个标准的 Android 对话框,您无法自定义该对话框。
解释为什么应用程序需要权限
在某些情况下,您可能希望帮助用户了解您的应用需要权限的原因。例如,如果用户启动摄影应用程序,用户可能不会对应用程序请求使用相机的权限感到惊讶,但用户可能不明白为什么应用程序想要访问用户的位置或联系人。在您请求许可之前,您应该考虑向用户提供解释。请记住,您不想用解释压倒用户;如果您提供太多解释,用户可能会发现应用程序令人沮丧并将其删除。
您可能使用的一种方法是仅在用户已经拒绝该权限请求时才提供解释。如果用户一直尝试使用需要权限的功能,但一直拒绝权限请求,这可能表明用户不明白为什么应用程序需要权限来提供该功能。在这种情况下,给出解释可能是个好主意。
为了帮助找到用户可能需要解释的情况,Android 提供了一个实用方法 shouldShowRequestPermissionRationale()。如果应用程序之前已请求此权限并且用户拒绝了该请求,则此方法返回 true。
文档中的更多详细信息