由于有些事情在apk扩展的工作方式中发生了变化,并且您正在使用Android Studio来使这些库工作,所以在这篇文章中最终会出现一些helfull信息。
注1:
不能使用了草案为纽带,以获得扩展文件不会被激活呢。您必须先使用扩展文件将版本上传到Alpha或Beta。 (只能通过第二个apk上传和扩展才能添加扩展文件)因此,请确保在单击APK下的开发者发布部分中的详细信息时看到列出的apk扩展文件。
注2:
如果您正在使用Android的工作室,并希望利用下载库的不只是包名和java文件复制到自己的应用程序的src目录。在eclipse中导入下载器库并选择export => gradle构建文件。之后,您可以将该库作为android studio中的模块导入。
注3:
不知道这一点,但我也认为这是neccesary通过Play商店下载应用ATLEAST一次,并有机会获得它与你的测试设备上的帐户。因此,如果您正在使用alpha创建一个Google +测试组并添加自己或其他测试设备。
BTW
使用这些库这是很容易实现的apk扩展下载只需要确保:
您的活动(要实现扩张的下载 的一个当下载没有完成时自动执行 )实现IDownloaderClient。
您设置了服务&接收器并将它们设置在清单中。
服务类中的BASE64_PUBLIC_KEY是正确的。上传 第一个APK =>在您的应用下的开发者控制台 中查看服务和API,然后查看此应用的许可代码。
该代码用于以查看是否扩展文件可以在设备上找到:
boolean expansionFilesDelivered() {
for (XAPKFile xf : xAPKS) {
String fileName = Helpers.getExpansionAPKFileName(this, xf.mIsMain, xf.mFileVersion);
Log.i(TAG, "Expansion filename " +fileName);
if (!Helpers.doesFileExist(this, fileName, xf.mFileSize, false))
return false;
}
return true;
}
它使用类XAPKS至极表示扩展文件,不论是任一主或补丁文件,具有特定的文件大小(字节)并与apk版本(它首次添加的版本)相关联。
private static class XAPKFile {
public final boolean mIsMain; // true
public final int mFileVersion; //example 4
public final long mFileSize; //example 126515695L
// example => main expansion that was first introduced in apk version 4 and is 126515695 bytes in size
XAPKFile(boolean isMain, int fileVersion, long fileSize) {
mIsMain = isMain;
mFileVersion = fileVersion;
mFileSize = fileSize;
}
}
它也很容易直接使用,谷歌提供了Zip工具(com.android.vending.zipfile)扩展文件读取电影文件和其他的东西。
首先使用库中提供的方法获取扩展文件,参数是代表您的主扩展apk版本(您首先需要的扩展包的apk版本)和修补程序apk版本的整数。
ZipResourceFile expansionFile = APKExpansionSupport.getAPKExpansionZipFile(context, APKX_MAIN_APK, APKX_PATCH_APK);
视频
直接从这个zipresourcefile播放视频:从这个assetFileDescriptor
AssetFileDescriptor a = expansionFile.getAssetFileDescriptor(pathToFileInsideZip);
现在,你可以得到FileDescriptor的和您的媒体播放器使用,正确的语法来获得您的媒体播放器播放视频也需要第二个和第三个参数。不管它是从AssetFileDescriptor中获得的起始偏移量和长度。
player.setDataSource(a.getFileDescriptor(), a.getStartOffset(), a.getLength());
其他
对于所有其他的东西(如图片)你可以得到的zipresourcefile的一个InputStream:
expansionFile.getInputStream(pathToFileInsideZip);`
另外,还要确保你不压缩视频在这个zip的工作! 例如不压缩.mp4文件:
zip -n .mp4 -r zipfile.zip . -x ".*" -x "*/.*"
您可以在谷歌新增扩充档案Play商店(如果这就是为什么你不能有自己的APK>为50公尺),也可以添加将要推出下载屏幕第一次打开应用程序,在那里你可以解压缩/下载/更改/获取或任何你想要的,你的图像。 –