问题描述
今天,我收到了来自Google小组的邮件,我的应用发布状态:已拒绝。
无法在运行时权限之前触发默认处理程序提示 *如果您的应用是默认处理程序,则默认处理程序提示必须在运行时权限提示之前。
根据我们的评论,您的应用似乎无法在运行时权限提示之前正确触发默认处理程序提示。请在任何运行时权限提示之前添加默认处理程序提示。*
请帮助解决此问题,我也使用了默认处理程序提示,但不知道Google为什么向我发送此邮件。
解决方法
您需要显式提示默认处理程序,而不是简单地在清单中声明权限。
<<!DOCTYPE html>
<html>
<head>
<meta charset='utf-8'>
<title></title>
<link rel='stylesheet' href='main.css'>
</head>
<body>
<header>
The Note Machine
</header>
<main>
<div class="headers">
<div id="list-head">
<b>Your Notes</b> <i>(click to edit/delete)</i>
</div>
<div id="note-head">
<b>Your Notepad</b>
<span id="edit-mode" class="no-display">
<i> (edit mode) </i>
</span>
</div>
</div>
<noteList>
<div id='listed'>
</div>
</noteList>
<notepad>
<div id="note-title">
<input id="title-field" type="text" placeholder="title your note">
</div>
<div id="note-body">
<textarea id="body-field"></textarea>
</div>
</notepad>
</main>
<footer>
<button id="btn-save">Save</button>
<button id="btn-delete">Delete / Clear </button>
</footer>
</body>
<script type='text/javascript' src='https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js'></script>
<script type='text/javascript' src='Code.js'></script>
</html>
用于更改默认处理程序:
RoleManager roleManager = (RoleManager)
activity.getSystemService(Context.ROLE_SERVICE);
Intent intent = roleManager.createRequestRoleIntent(RoleManager.ROLE_DIALER);
activity.startActivityForResult(intent,requestCode);
从Google的Android文档中可以找到有关Play Store policy的信息。
给出应用在访问过程中访问的敏感用户信息 充当默认处理程序,您的应用无法成为默认处理程序 除非符合以下Play商店清单和核心 功能要求:
您的应用必须能够执行其功能 默认处理程序。例如,默认的SMS处理程序应该能够 发送短信。
您的应用必须提供隐私权政策。
您的应用必须在Play商店中明确其核心功能 描述。
例如,默认的电话处理程序应描述其与电话相关的 描述中的功能。
您的应用必须声明适合其使用的权限 案件。有关您可以声明为哪个权限的更多详细信息 给定的处理程序,请参阅有关使用SMS或呼叫日志权限的指南 组在Play控制台帮助中心中。
您的应用必须先请求成为默认处理程序,然后才能请求 与成为该处理程序相关的权限。例如,一个应用 必须先请求成为默认的SMS处理程序,然后才能请求 READ_SMS权限。