我们最近开始使用新的 Google 扩展 APK 机制。总的来说,它运作良好,但对我们来说似乎有些不稳定。一些问题:
一些用户会随应用程序一起下载扩展应用程序,而其他用户则不会,我们的应用程序必须自行下载。有谁知道什么时候自动运行,什么时候不自动运行?
有时当我们需要自己下载扩展文件时,Google Play 会返回文件大小 -1 和 URL 为 null,表示扩展文件不存在。如果我再次运行该应用程序,第二次它通常会返回一个有效的大小和 URL。有没有其他人看到这种片状?
以下是代码的基础知识:
这就是我们设置调用以通过回调验证许可的方式
policy = new APKExpansionPolicy( context, new AESObfuscator( SALT, context.getPackageName(), deviceId ) );
mChecker = new LicenseChecker( context, policy, BASE64_PUBLIC_KEY );
mLicenseCheckerCallback = new MyLicenseCheckerCallback();
mChecker.checkAccess( mLicenseCheckerCallback );
然后在回调中我们为 allow() 方法提供了这个(当许可证有效时)。
public void allow( int reason )
{
String expansionFileName = policy.getExpansionFileName( APKExpansionPolicy.MAIN_FILE_URL_INDEX );
String expansionURL = policy.getExpansionURL( APKExpansionPolicy.MAIN_FILE_URL_INDEX );
long expansionFileSize = policy.getExpansionFileSize( APKExpansionPolicy.MAIN_FILE_URL_INDEX );
}
我们刚刚发布了带有这个新代码的应用程序,但是大量用户得到了 -1 作为扩展文件大小和 null 作为 url。这会导致用户无法安装扩展文件。通常,如果他们再次运行该应用程序,它将在第二次(或第三次)时运行。
有人对可能发生的事情有任何想法吗?