Android - 更改READ_PHONE_STATE权限请求消息

7
我正在使用 Android Marshmallow 的 READ_PHONE_STATE 权限,并希望更改出现在权限请求上的文本。
默认情况下,它显示:
允许 [应用程序名称] 拨打电话并管理通话?
但我正在使用它来获取设备ID和SIM卡序列号,因此我认为更改请求消息会更好。 有人知道如何做到这一点吗(是否有特殊的函数或其他东西)?
还是我只需要实现一个独立的 Dialog 来实现它呢?
非常感谢。
1个回答

7

不,你不能更改对话框中的文本。它是由系统默认实现的。在请求权限之前,您可以提供有关权限的简要说明。这样用户就会确切地知道您将要使用它。

请求权限

如果你的应用在清单文件中列出了一个危险权限,它必须要求用户授权。Android提供了几种请求权限的方法。调用这些方法会弹出标准的Android对话框,无法进行自定义。

解释为什么应用需要权限

在某些情况下,你可能想帮助用户了解为什么你的应用需要权限。例如,如果用户启动一个摄影应用程序,他们可能不会感到意外,因为该应用程序请求使用相机的权限,但用户可能不理解该应用程序为什么需要访问其位置或联系人。在请求权限之前,你应该考虑向用户提供说明。请记住,你不希望用解释来压倒用户;如果你提供太多的解释,用户可能会觉得应用程序很烦人并将其删除。

你可能会采取的一种方法是,只有当用户拒绝了该权限请求时才提供说明。如果用户不断尝试使用需要权限的功能,但不断拒绝权限请求,那可能表明用户不明白该应用程序为何需要该权限才能提供该功能。在这种情况下,显示说明可能是个好主意。

为了帮助找到用户可能需要说明的情况,Android提供了一个实用方法shouldShowRequestPermissionRationale()。如果应用程序先前请求过此权限并且用户拒绝了请求,则该方法返回true。

更多细节请参阅文档


我本以为我做不到。谢谢提供链接。 - Óscar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接