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

相关推荐
alexhilton1 天前
Android车载OS中的Remote Compose
android·kotlin·android jetpack
落魄Android在线炒饭2 天前
Android 自定义HAL开发篇之 HIDL篇——从入门到实战(上)
android
plainGeekDev2 天前
广播接收器 → Flow + Lifecycle
android·java·kotlin
plainGeekDev2 天前
EventBus → SharedFlow
android·java·kotlin
37手游移动客户端团队3 天前
招聘-高级安卓开发工程师
android·客户端
用户41659673693553 天前
WebView 请求异常排查操作手册
android·前端
Kapaseker3 天前
学不动了,入门 Compose Styles API
android·kotlin
墨狂之逸才4 天前
Android TV WebView 遥控器按键处理:从全透传到白名单
android
plainGeekDev4 天前
MVC 写法 → MVVM
android·java·kotlin
恋猫de小郭4 天前
Flutter Patchwork,不用 Fork 改依赖包源码的第三方工具
android·前端·flutter