Google Play 应用被拒-数据安全表单无效(设备上的应用)

大家看了这两张图后,第一反应大概率是去数据安全模块下面把安装的应用给勾上进行重新送审,当然这也没啥问题。

今天聊聊我的一些看法。

这个问题的在于很多开发者对于自己所收集的数据或者接入SDK所收集的数据 没有比较清晰的了解。

我们其实要解决以下几个问题:

  1. 怎么判断是否收集了设备上的应用
  2. 如何规避更多因数据安全表单被拒

下面说下我的一个解决思路

怎么判断是否收集了设备上的应用

有几个排查思路。

1.检查自己代码

代码中包含以下特征的都算,比如

getInstalledApplications 用于获取设备上安装的应用列表

scala 复制代码
public class MainActivity extends AppCompatActivity {

    private static final String TAG = "InstalledApps";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // 获取 PackageManager 实例
        PackageManager packageManager = getPackageManager();
        // 调用 getInstalledApplications 获取已安装的应用列表
        List<ApplicationInfo> installedApps = packageManager.getInstalledApplications(PackageManager.GET_META_DATA);

        // 遍历应用列表并打印包名和应用名称
        for (ApplicationInfo app : installedApps) {
            String packageName = app.packageName; // 获取包名
            String appName = packageManager.getApplicationLabel(app).toString(); // 获取应用名称
            Log.d(TAG, "App Name: " + appName + ", Package: " + packageName);
        }
    }
}

getInstalledPackages 用于获取设备上安装的应用列表

scala 复制代码
public class MainActivity extends AppCompatActivity {
    private static final String TAG = "InstalledPackages";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // 获取 PackageManager 实例
        PackageManager packageManager = getPackageManager();

        // 调用 getInstalledPackages 获取已安装的包列表
        List<PackageInfo> installedPackages = packageManager.getInstalledPackages(PackageManager.GET_PERMISSIONS);

        // 遍历包列表并打印包名、应用名称和版本号
        for (PackageInfo pkg : installedPackages) {
            String packageName = pkg.packageName; // 获取包名
            String appName = packageManager.getApplicationLabel(pkg.applicationInfo).toString(); // 获取应用名称
            String versionName = pkg.versionName; // 获取版本号
            Log.d(TAG, "App Name: " + appName + ", Package: " + packageName + ", Version: " + versionName);
        }
    }
}

QUERY_ALL_PACKAGES 清单文件获取应用列表权限

ini 复制代码
<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES"/>

queries package 清单文件指定某个包的应用信息

xml 复制代码
<manifest ...>
    <queries>
        <package android:name="com.facebook.katana" />
    </queries>
    <application ...>
        ...
    </application>
</manifest>

以上都是自己的代码能够检查的,如果有这些代码特征那就需要在Google Play 数据安全表单勾上 设备上的应用。

2.检查SDK

代码中引用了一些三方SDK,注意这里所说的主要指代 Google Play SDK Index 上的。 Google Play SDK Index

每个在 Google Play Index 上的SDK都会提供数据安全参考填写说明。 直接去检查对应SDK的数据安全填写指南里面找有没有手机应用列表即可。

如何规避更多因数据安全表单被拒

这里主要也指使用Google Play SDK Index 上的SDK。

比如数据归因平台-Adjust SDK

点进去就能看到数据安全填写指南 Google Play 数据安全 | Adjust Help Center

再比如另一个数据归因平台-Branch

同样点进去也能看到对应的数据安全填写指南

最后完全按照对应SDK所提供的数据安全表单指南填写即可。

相关推荐
阿巴斯甜8 小时前
Android 报错:Zip file '/Users/lyy/develop/repoAndroidLapp/l-app-android-ble/app/bu
android
Kapaseker9 小时前
实战 Compose 中的 IntrinsicSize
android·kotlin
xq952710 小时前
Andorid Google 登录接入文档
android
黄林晴11 小时前
告别 Modifier 地狱,Compose 样式系统要变天了
android·android jetpack
冬奇Lab1 天前
Android触摸事件分发、手势识别与输入优化实战
android·源码阅读
城东米粉儿1 天前
Android MediaPlayer 笔记
android
Jony_1 天前
Android 启动优化方案
android
阿巴斯甜1 天前
Android studio 报错:Cause: error=86, Bad CPU type in executable
android
张小潇1 天前
AOSP15 Input专题InputReader源码分析
android
_小马快跑_1 天前
Kotlin | 协程调度器选择:何时用CoroutineScope配置,何时用launch指定?
android