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所提供的数据安全表单指南填写即可。

相关推荐
和煦的春风5 小时前
简单讨论下lmkd 查杀机制
android
Android轮子哥5 小时前
月下载 40 万次的框架是怎么练成的
android
三少爷的鞋5 小时前
Kotlin 协程真的是线程框架吗?
android
三雒5 小时前
ART堆内存系列二:从堆中排除大对象
android·性能优化
Android-Flutter5 小时前
kotlin - 平板分屏,左右拖动,2个Activity计算宽度,使用ActivityOptions、Rect(三)
android·kotlin
zfxwasaboy6 小时前
linux Kbuild详解关于fixdep、Q、quiet、escsq
android·linux·ubuntu
Mr YiRan6 小时前
Android模拟简单的网络请求框架Retrofit实现
android·retrofit
zh_xuan11 小时前
Android Looper源码阅读
android
用户02738518402621 小时前
[Android]RecycleView的item用法
android