为什么我收到警告 - 此应用不符合Google Play权限政策,即使我的最新版本不需要这些权限?

Ama*_*man 15 android google-play android-permissions google-play-console

它显示了这条消息

此应用不符合与使用SMS或CALL_LOG相关的Google Play权限政策.您必须在2019年3月9日之前解决此问题,否则您的应用将从Google Play中删除.注意:如果您最近进行了更改,则最多可能需要12小时才能更新此邮件.

我之前版本的应用程序拥有此权限,并在被拒绝时申请例外我在2周前更新了应用程序并删除了此权限.但现在我得到了这个消息.

D_A*_*pha 17

我在上一个应用版本上也收到了这个警告.

说明: 您收到此警告是因为您以某种方式直接或间接使用了一些不符合 Google Play权限策略的权限.

间接意味着,您在项目中使用的任何第三方库可能已经在使用这些权限.当您构建项目时,它将所有Manifest文件合并到一个Merged Manifest文件中.这就是您收到此警告的原因,因为您的最终清单具有任何这些权限.

解决方案1: 构建项目后,

  • 打开项目的AndroidManifest文件.
  • 打开底部的Merged Manifest选项卡.
  • 搜索任何这些权限.(示例 - READ_SMS)
  • 如果你得到任何,现在是时候删除它们了.检查示例

示例:如果您在Merged Manifest文件中看到READ_SMS权限,那么现在打开项目的AndroidManifest文件并添加下面写的行以从项目中删除该权限 -

<uses-permission android:name="android.permission.READ_SMS" tools:node="remove" />
Run Code Online (Sandbox Code Playgroud)

AndroidManifest文件中添加上述权限行,就是这样.它将从Merged Manifest文件中删除Permission,您的问题将得到解决.

AndroidManifest文件

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="com.example.myapp">

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.READ_SMS" tools:node="remove" />

    <application
        android:name=".MyApp"
        android:allowBackup="false"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme"
        tools:ignore="GoogleAppIndexingWarning"
        tools:replace="android:allowBackup">

        <activity
            android:name=".SplashActivity"
            android:screenOrientation="portrait"
            android:theme="@style/FullscreenTheme">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
Run Code Online (Sandbox Code Playgroud)

解决方案2: 替换/删除使用这些权限的第三方库.

更新:

解决方案3: 为安全起见,您可以在 AndroidManifest文件中添加这些行.

<uses-permission
    android:name="android.permission.RECEIVE_SMS"
    tools:node="remove" />
<uses-permission
    android:name="android.permission.READ_SMS"
    tools:node="remove" />
<uses-permission
    android:name="android.permission.SEND_SMS"
    tools:node="remove" />
<uses-permission
    android:name="android.permission.WRITE_SMS"
    tools:node="remove" />
<uses-permission
    android:name="android.permission.RECEIVE_WAP_PUSH"
    tools:node="remove" />
<uses-permission
    android:name="android.permission.RECEIVE_MMS"
    tools:node="remove" />
<uses-permission
    android:name="android.permission.READ_CALL_LOG"
    tools:node="remove" />
<uses-permission
    android:name="android.permission.WRITE_CALL_LOG"
    tools:node="remove" />
<uses-permission
    android:name="android.permission.PROCESS_OUTGOING_CALLS"
    tools:node="remove" />
Run Code Online (Sandbox Code Playgroud)

如果使用的话,这些行将根据权限政策删除所有受限制的许可.

希望它会有所帮助.