先抛问题
在小贷行业,近期有很多友商反馈因为通过获取QUERY_*ALL_PACKAGES权限收集用户的应用安装列表,也就是Applist而被Google移除了应用,错误如下:
但我们为了风控考虑,我们肯定不能直接去掉获取用户Applist的数据收集。在某些国家,例如印尼(明令禁止获取SMS),菲律宾(有很大风险获取SMS),所以Applist在这些国家在风控上的表现尤为重要。再言,即使我们的App获取了SMS和其他信息,Applist数据对于风控来说也是一个很好的补充。那么,我们必须要定位问题和想办法获取这部分数据了。
问题定位
以下链接需翻墙
support.google.com/googleplay/…
developer.android.com/training/pa…
简单给大家总结一下:Google明确禁止了个人贷款应用无法通过获取QUERY_ALL_PACKAGES权限来收集用户的Applist数据。
没有QUERY_ALL_PACKAGES权限,如何获取Applist?
我们先看google的解释,在 developer.android.com/training/pa… 官方博文中,google 提供了3种方式获取App信息:
1)查询特定软件包(手动罗列自己需要检测的app列表)
<manifest package="com.example.game">
<queries>
<package android:name="com.example.store" />
<package android:name="com.example.services" />
</queries>
</manifest>
2)给定 intent 过滤器的情况下查询应用(满足该启动条件的应用列表)
<manifest package="com.example.game">
<queries>
<intent>
<action android:name="android.intent.action.SEND" />
<data android:mimeType="image/jpeg" />
</intent>
</queries>
...
</manifest>
3)给定提供程序授权的情况下查询应用(有对应的provider的应用列表)
<manifest package="com.example.suite.enterprise">
<queries>
<provider android:authorities="com.example.settings.files" />
</queries>
...
</manifest>
第一种方式:我们需要自己列举所有需要监控的App,而且需要每时每刻维护监控的List,实现起来有点怪异,而且需要发版才能更新applist列表,肯定是不合适的。
第二种方式:思考一下,我们是否可以通过android.intent.action.MAIN来通过启动器入口来获取Applist,所有的app基本都是有这个的Action的,这种获取方式是最符合我们的数据收集场景的,事实证明也是如此。
<uses-permission
android:name="android.permission.QUERY_ALL_PACKAGES"
tools:node="remove" />
<queries>
<intent>
<action android:name="android.intent.action.MAIN" />
</intent>
</queries>
为什么要声明QUERY_ALL_PACKAGES权限并remove呢,这样做是为了确保我们不会因为三方导入这个权限来影响我们的应用在线状态,不是很了解的同学可以查下remove的实际含义。
第三种我们就不做过多调研了。
这样做,我们既符合了Google Play对developer开发者的要求,又获取到了几乎所有的applist数据,满足了风控的需求,促进我们的小贷业务高效稳定快速发展下去。
App出海交流群,寻找志同道合的你
经常分享Google Play,App Store市场政策解决方案,大家共同深入了解应用市场App上架、下架背后的原因,如政策违规、安全漏洞、版权问题、市场策略调整等,确保海外App合规、安全并提升我们的用户体验。也不限于分享其他App出海快讯,一起见证行业的蓬勃发展。
欢迎您来到App出海交流群讨论出海的任何问题!想进群的可以点击这里,或者或者关注公众号趣浪出海,我拉您进来。
这是一个高质量的属于App出海浪潮儿的技术交流中心!
在这里,都是一群热衷于在海外发展的人群:
1、你的各种谷歌&苹果应用上架问题都能得到解决。
2、你可以了解到各种最新的谷歌&苹果政策更新。
3、你可以获得每日的应用上架数据,了解谷歌&苹果审核严松状态。
4、你可以获得各种资源信息,助力企业出海。