目前隐私合规都审核比较严格,如果SDK没有隐私合规,无法过审。
提供一个解决方案:
1、SDK新建一个SplashActivity,可以展示隐私弹窗
2、用户容易隐私授权后,SDK可以初始化操作,和打开游戏的主入口
技术点:
1、如何让自己的SplashActivity作为游戏包的主入口?
2、用户同意授权后,如何启动游戏的主入口?
我们一个一个来解决该问题
启动游戏主入口:通过反编译修改游戏包的AndroidManifest.xml 里边主入口必须会有以下代码
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
把里边的android.intent.action.MAIN 修改成自定义的一个action name,android.intent.category.LAUNCHER 修改成android.intent.category.DEFAULT
例如:
<intent-filter>
<action android:name="${applicationId}.action" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
这样启动游戏就不会进入游戏的主入口
然后把我们SDK中的SplashActivity作为主入口加入AndroidManifest.xml中
<activity android:name=".SplashActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
当我们启动游戏的时候,此时就会打开我们SDK中的SplashActivity
剩下就是同意隐私授权后,我们如何进入游戏的主入口了
我们可以通过隐式Intent调用的方法,去调用打开游戏主入口
Intent intent = new Intent(); intent.setAction(Constant.MAIN_ACT_ACTION);//这个action 是我们自定的action name sActivityRef.get().startActivity(intent);
这样就可以打开游戏主入口了。
注意:action name最好是包名+其它,因为游戏是多马甲包的,如果写死的话,用户安装了你的两个游戏包,系统会让你选择打开其中一个包,因为两个包都是相同的action name,系统无法识别需要打开的就是你当前游戏的