【问题标题】:Receive_SMS Permission issueReceive_SMS 权限问题
【发布时间】:2019-05-11 10:24:36
【问题描述】:

如您所知,根据 Google 开发者政策,如果我们应用的核心功能不依赖于 SMS,那么我们应该移除 RECEIVE_SMS android 权限并尝试寻找不同的替代方案。

但我的问题是我没有在清单或询问运行时使用 RECEIVE_SMS。尽管如此,Google 还是会警告我使用 RECEIVE_SMS 权限。

虽然在 Play 商店中,如果我检查此应用所需的权限,它会显示 RECEIVE_SMS 权限。

如果我在任何地方错误地使用它,您可以看到我搜索此权限的应用程序的一些屏幕截图。

但我找不到它。

清单中也有这个:

如您所见,我并没有在清单或运行时请求该权限。

我正在使用 Firebase Phone 身份验证和 PayUMoney Payment 集成。这两个可能会引起问题吗?或者他们在内部请求此权限。

我不知道这个权限是从哪里来的。

如果有人能帮助我解决这个问题,那将是一个很大的帮助。

有人遇到同样的问题吗?

【问题讨论】:

    标签: android android-permissions payumoney


    【解决方案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 上收到通知了吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-02
    • 2011-06-03
    • 2011-05-12
    • 2020-09-14
    • 2014-04-20
    • 2011-03-10
    相关资源
    最近更新 更多