android - 权限违规,但清单未请求 SMS 或 Call Log 权限
问题描述
由于违反许可,我们的 2 个应用今天在 Play 商店中下架。有没有人遇到过同样的问题?
注意:我们的应用代码不包含短信或通话记录权限。
嗨,XXX LTD 的开发人员,
经审核,由于违反政策,[App Name] net.xxx.xxx 已从 Google Play 下架。在您通过 Play 管理中心向我们提供更多信息之前,用户将无法使用此应用。
问题:违反权限政策
您只能请求实现应用中当前可用的关键功能或服务所必需的权限。您不得将授予用户或设备数据访问权限的权限用于未公开、未实现或不允许的功能或目的。短信和通话记录权限受到额外限制;要使用这些权限,您必须首先获得 Google Play 的批准。
解决方案
想要拨打电话?不要使用 CALL_PHONE 权限,而是使用拨号器意图。
设置 phoneNumber 并使用 ACTION_DIAL。
Intent intent = new Intent(Intent.ACTION_DIAL);
intent.setData(Uri.parse("tel:" + phoneNumber));
context.startActivity(intent);
https://proandroiddev.com/no-more-sms-call-log-permissions-now-what-9b8226de7827
在 API 级别 1 中添加的 ACTION_CALL public static final String ACTION_CALL 活动操作:对数据指定的人执行调用。
输入:如果没有,则启动一个空拨号器;否则 getData() 是要拨打的电话号码的 URI 或 tel: 明确电话号码的 URI。
输出:没有。
注意:哪些应用可以发起呼叫会有限制;大多数应用程序应该使用 ACTION_DIAL。
注意:此 Intent 不能用于拨打紧急号码。但是,应用程序可以使用 ACTION_DIAL 拨打紧急号码。
注意:如果您的应用程序以 M 及以上为目标并声明为使用未授予的 Manifest.permission.CALL_PHONE 权限,则尝试使用此操作将导致 SecurityException。
常量值:“android.intent.action.CALL”
https://developer.android.com/reference/android/content/Intent
推荐阅读
- java - java.util.concurrent.CyclicBarrier 类的方法 getNumberWaiting() 返回随机输出
- php - Symfony DI:未捕获的 ArgumentCountError:函数 App::__construct() 的参数太少,第 28 行的 index.php 中传递了 0,而预期的正是 1
- javascript - 是否可以在 AngularJS 中模拟按键?
- mysql - 如何根据记录的前缀自动增加 char 数据类型?
- r - R/Shiny:从服务器上的文件夹下载多个文件 (zip)
- angular - 在 vs 代码中使用 Angular 控制台插件
- java - 在 Fragments 中使用 Volley 填充 RecyclerView
- java - 不能在 Spring Boot 中使用 @Async
- docker - 为什么文件在 /var/lib/docker/volumes/
/_data/ 在 docker 容器中不可见? - sql - 相交上的平均值