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 权限问题的主要内容,如果未能解决你的问题,请参考以下文章

删除短信和通话记录权限后无法更新 APK [重复]

由于短信权限,Google Play 商店删除了我的应用

谷歌商店上架APP被拒绝

Android收发短信

Android studio之广播监听接收短信

来自 Google Play for My React Native 应用程序的呼叫/短信许可最终警告电子邮件