0

我正在尝试执行APKExpansionPolicy检查,以便获取要下载的文件的 URL 以进行自定义下载。我放了我的APK,让它处于未发布状态,上传了一个扩展文件,然后用模拟器测试做LVL调用。它返回(无错误),当我将 google play 测试部分中的选项更改为始终返回有效或错误时,我会看到预期的结果。但是每次,无论我做什么,额外的字符串(url,文件名)都没有填写(null)。

我想知道我是否正在尝试在模拟器中做一些它不做的事情。我还尝试了不同版本的模拟器 2.3.3、4.0,结果相同。

private class MyLicenseCheckerCallback implements LicenseCheckerCallback {
    public void allow(int reason) {
        if (isFinishing()) {
           // Don't update UI if Activity is finishing.
           return;
        }
        // Should allow user access.
        String url = policy.getExpansionURL(APKExpansionPolicy.MAIN_FILE_URL_INDEX);
        String expansionFileName = policy.getExpansionFileName( APKExpansionPolicy.MAIN_FILE_URL_INDEX );
        long expansionFileSize = policy.getExpansionFileSize( APKExpansionPolicy.MAIN_FILE_URL_INDEX );
}
4

1 回答 1

0

凌晨 2 点 30 分,我找到了答案……

我基本上遵循 Android 许可教程,但我使用的是 APKExpansionPolicy。
这没有用:

policy = new APKExpansionPolicy(this, new AESObfuscator(SALT, getPackageName(), deviceId));

这确实:

policy = new APKExpansionPolicy(getApplicationContext(), new AESObfuscator(SALT, getPackageName(), deviceId));

Google Play 现在传回我的扩展的 URL、大小和文件名。这是上下文中的代码:

String deviceId = Secure.getString(getContentResolver(), Secure.ANDROID_ID);

// Library calls this when it's done.
mLicenseCheckerCallback = new MyLicenseCheckerCallback();

policy = new APKExpansionPolicy(getApplicationContext(), new AESObfuscator(SALT, getPackageName(), deviceId));

// Construct the LicenseChecker with a policy.
mChecker = new LicenseChecker(this, policy,base64key);

mChecker.checkAccess(mLicenseCheckerCallback);
于 2012-08-23T15:40:10.110 回答