如何解决此“无法在运行时权限之前触发默认处理程序提示”
Posted
技术标签:
【中文标题】如何解决此“无法在运行时权限之前触发默认处理程序提示”【英文标题】:how to fix this "Unable to trigger default handler prompt prior to runtime permissions" 【发布时间】:2021-01-07 10:18:13 【问题描述】:今天我收到了谷歌团队的这封邮件,我的应用发布状态:拒绝。
无法在运行时权限之前触发默认处理程序提示 *如果您的应用是默认处理程序,则默认处理程序提示必须在运行时权限提示之前。
根据我们的审查,您的应用似乎没有在运行时权限提示之前正确触发默认处理程序提示。请在任何运行时权限提示之前添加默认处理程序提示。*
请帮助解决这个问题,我也使用了默认处理程序提示,但不知道为什么 google 给我发了这封邮件。
【问题讨论】:
【参考方案1】:您需要显式提示默认处理程序,而不是简单地在清单中声明权限。
RoleManager roleManager = (RoleManager)
activity.getSystemService(Context.ROLE_SERVICE);
Intent intent = roleManager.createRequestRoleIntent(RoleManager.ROLE_DIALER);
activity.startActivityForResult(intent, requestCode);
用于更改默认处理程序:
Intent setDefaultSmsIntent = new Intent(Telephony.Sms.Intents.ACTION_CHANGE_DEFAULT);
setDefaultSmsIntent.putExtra(Telephony.Sms.Intents.EXTRA_PACKAGE_NAME, getPackageName());
startActivityForResult(setDefaultSmsIntent, requestCode);
来自 Google 的 android 文档,这是关于 Play Store policy。
考虑到应用在访问时访问的敏感用户信息 作为默认处理程序,您的应用不能成为默认处理程序 除非它符合以下 Play 商店列表和核心 功能要求:
您的应用必须能够执行它所支持的功能 默认处理程序。例如,默认的 SMS 处理程序应该能够 发送短信。
您的应用必须提供隐私政策。
您的应用必须在 Play 商店中明确其核心功能 描述。
例如,默认的电话处理程序应描述其与电话相关的 描述中的功能。
您的应用必须声明适合其使用的权限 案子。有关您可以声明哪些权限的更多详细信息 给定处理程序,请参阅使用 SMS 或通话记录权限的指南 Play 管理中心帮助中心中的群组。
您的应用必须先请求成为默认处理程序,然后才能请求 与成为该处理程序相关的权限。例如,一个应用程序 必须先请求成为默认 SMS 处理程序,然后再请求 READ_SMS 权限。
【讨论】:
以上是关于如何解决此“无法在运行时权限之前触发默认处理程序提示”的主要内容,如果未能解决你的问题,请参考以下文章