

大家看了这两张图后,第一反应大概率是去数据安全模块下面把安装的应用给勾上进行重新送审,当然这也没啥问题。
今天聊聊我的一些看法。
这个问题的在于很多开发者对于自己所收集的数据或者接入SDK所收集的数据 没有比较清晰的了解。
我们其实要解决以下几个问题:
- 怎么判断是否收集了设备上的应用
- 如何规避更多因数据安全表单被拒
下面说下我的一个解决思路
怎么判断是否收集了设备上的应用
有几个排查思路。
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所提供的数据安全表单指南填写即可。