繁体   English   中英

如何解决此“无法在运行时权限之前触发默认处理程序提示”

[英]how to fix this "Unable to trigger default handler prompt prior to runtime permissions"

今天我收到了来自谷歌团队的这封邮件我的应用程序发布状态:被拒绝。

无法在运行时权限提示之前触发默认处理程序提示*如果您的应用程序是默认处理程序,则默认处理程序提示必须在运行时权限提示之前。

根据我们的审查,您的应用似乎没有在运行时权限提示之前正确触发默认处理程序提示。 请在任何运行时权限提示之前添加默认处理程序提示。*

请帮助解决这个问题,我也使用了默认处理程序提示,但不知道谷歌为什么给我发这封邮件。

您需要明确提示默认处理程序,而不是简单地在清单中声明权限。

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 商店说明中明确说明其核心功能。

例如,默认电话处理程序应在描述中描述其与电话相关的功能。

您的应用程序必须声明适合其用例的权限。 有关您可以将哪些权限声明为给定处理程序的更多详细信息,请参阅 Play 管理中心帮助中心中有关使用短信或通话记录权限组的指南。

您的应用程序必须先请求成为默认处理程序,然后才能请求与成为该处理程序相关的权限。 例如,应用程序必须先请求成为默认的 SMS 处理程序,然后才能请求 READ_SMS 权限。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM