Receive_SMS 权限问题
Posted
技术标签:
【中文标题】Receive_SMS 权限问题【英文标题】:Receive_SMS Permission issue 【发布时间】:2019-05-11 10:24:36 【问题描述】:如您所知,根据 Google 开发者政策,如果我们应用的核心功能不依赖于 SMS,那么我们应该移除 RECEIVE_SMS android 权限并尝试寻找不同的替代方案。
但我的问题是我没有在清单或询问运行时使用 RECEIVE_SMS。尽管如此,Google 还是会警告我使用 RECEIVE_SMS 权限。
虽然在 Play 商店中,如果我检查此应用所需的权限,它会显示 RECEIVE_SMS 权限。
如果我在任何地方错误地使用它,您可以看到我搜索此权限的应用程序的一些屏幕截图。
但我找不到它。
清单中也有这个:
如您所见,我并没有在清单或运行时请求该权限。
我正在使用 Firebase Phone 身份验证和 PayUMoney Payment 集成。这两个可能会引起问题吗?或者他们在内部请求此权限。
我不知道这个权限是从哪里来的。
如果有人能帮助我解决这个问题,那将是一个很大的帮助。
有人遇到同样的问题吗?
【问题讨论】:
【参考方案1】:嗯,问题在于 PayUMoney 库。因为 Firebase 电话身份验证不要求 RECEIVE_SMS
许可。
你可以做的是你可以一个一个地删除这个库,然后检查它是否还在请求RECEIVE_SMS
权限。
如果您发现是哪个库导致了这种情况,那么您可以在您的 Android Manifest 中编写此内容
<uses-permission
android:name="android.permission.RECEIVE_SMS"
tools:node="remove" />
这将阻止库在内部请求此权限。在将此行添加到您的应用清单后,请检查您的库是否在没有此权限的情况下正常运行。
对于您的特定问题,导致此问题的是 PayUMoney 而不是 Firebase,因此您可以将此行添加到您的清单中。并检查 PayuMoney 是否正常运行。
【讨论】:
极好的解决方案。谢谢! 无需逐个删除库进行检查,您可以调查合并清单,您可以在 Android Studio 本身中找到该清单 如果您有更好的解决方案,请回复此帖。所以其他人可以从中受益。【参考方案2】:Firebase Phone 身份验证将需要使用 SMS 对您进行身份验证。因此,需要您的许可。这就是您出现此错误的原因,这是一种简单的说法;请包含短信权限。
您可以尝试使用此库来轻松操作权限;
implementation 'gun0912.ted:tedpermission:2.2.2
只要您需要许可,就去做;
` 公共类 GrantPermisions
public static void givePermision(final Context context)
PermissionListener permissionlistener = new PermissionListener()
@Override
public void onPermissionGranted()
@Override
public void onPermissionDenied(List<String> deniedPermissions)
;
TedPermission.with(context)
.setPermissionListener(permissionlistener)
.setDeniedMessage("If you reject permission,you can not use this service\n\nPlease turn on permissions at [Setting] > [Permission]")
.setPermissions(Manifest.permission.INTERNET,
Manifest.permission.READ_SMS,
Manifest.permission.READ_CALL_LOG)
.check();
`
希望你修复它。制作等待队友!!!
【讨论】:
我没有任何错误。 Google 要求我根据他们的开发者政策删除此权限。 但是你可以看到我没有明确要求这个权限 您需要使用短信。没有办法删除它。我认为您必须禁用 Firebase 电话身份验证。否则就不行了 但我要求谷歌例外,但他们没有提供任何选项来证明我的情况 你想了解我的问题吗?你的应用在 google play 上收到通知了吗?以上是关于Receive_SMS 权限问题的主要内容,如果未能解决你的问题,请参考以下文章