正如你所知道的,根据Google的政策,如果我们的应用程序的核心功能不依赖短信,那么我们应该删除RECEIVE_SMS的安卓许可,并尝试寻找另一种选择。
但我的问题是,我没有在清单中或在询问运行时中使用RECEIVE_SMS。不过,谷歌警告我不要使用RECEIVE_SMS权限。
虽然在play商店,如果我检查这个应用程序所需的权限,它会显示RECEIVE_SMS权限。
你可以看到我的应用程序的一些截图,如果我在任何地方错误地使用它,我会搜索它的权限。
但我找不到它。

还有这张清单上的:

如您所见,我不是在请求该权限,也不是在清单或运行时。
我正在使用Firebase电话认证和PayUMoney支付集成。这两者是否有可能引起问题呢?或者他们内部要求这一许可。
我不知道这个许可是从哪里来的。
如果有人能在这个问题上帮助我,那将是一个很大的帮助。
有谁面临同样的问题吗?
发布于 2019-01-04 11:37:27
问题在于PayUMoney库。因为Firebase没有请求RECEIVE_SMS许可。
您可以做的是逐个删除库,并检查它是否仍在请求RECEIVE_SMS权限。
如果您发现是哪个库导致了这种情况,那么您可以在中编写这个库。
<uses-permission
android:name="android.permission.RECEIVE_SMS"
tools:node="remove" />这将阻止库在内部请求此权限。此外,请检查您的库是否在添加到应用程序清单后没有此权限的情况下运行。
对于您的特定问题,PayUMoney是造成此问题的原因,而不是Firebase,因此您可以将该行添加到清单中。并检查PayuMoney是否正常工作。
发布于 2018-12-10 13:55:02
防火墙电话认证将需要使用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();
}}`
希望你能修好。生产等待伙伴!
https://stackoverflow.com/questions/53707033
复制相似问题