我将如何在市场上实施扩展包?就像我希望用户能够购买更多图像一样,我将如何做到这一点并且让主应用程序识别并加载这些图像?有什么教程可以指点我吗?我使用 Google 进行搜索,但没有找到任何非常具体且对初学者友好的内容。大多数都与应用计费有关,但这不是我想要的。
问问题
464 次
1 回答
2
您可以使用它PackageManager
来查找您的扩展包。识别扩展包的确切方式取决于您将如何使用它们。
例如,如果你的扩展包可以以某种方式运行——即它们都有一个主要的活动——那么你可能会有一个自定义的意图操作,你会使用PackageManager.queryIntentActivities()
给你一个可以处理的已安装活动列表行动。
如果这些扩展包只提供资源而不是代码,您可以选择拥有一个“虚拟”组件,您可以通过上面详细说明的意图识别 - 即使您没有运行它的意图 - 或者您可以寻找另一个方法。例如,如果除了您之外没有人制作这些扩展包,您可以简单地通过包名称来识别它们。
PackageManager pm = getPackageManager();
List<PackageInfo> packages = pm.getInstalledPackages();
for(PackageInfo package : packages) {
if(package.packageName.startWith("com.myapp.extension.") {
// found an extension package!
handleExtensionPackage(package);
}
}
如果需要从扩展包加载资源,则需要为该包创建上下文,查找资源标识符,然后加载资源。
Context extensionContext = createPackageContext(package.packageName, 0);
Resources extensionResources = extensionContext.getResources();
int r_drawable_pic = extensionResources.getIdentifier("drawable/pic", null, package.packageName);
Drawable remotePic = extensionResources.getDrawable(r_drawable_pic);
于 2013-07-23T05:14:46.010 回答