我将如何在市场上实现扩展包?就像如果我希望用户能够购买更多图片,我该怎么做并让主应用程序识别并加载这些图片?有什么教程可以指点我吗?我使用谷歌搜索但没有找到任何非常具体和初学者友好的内容。大多数都是关于应用内计费的,但这不是我要找的。
最佳答案
您可以使用 PackageManager
寻找您的扩展包。识别扩展包的确切方式取决于您将如何使用它们。
例如,如果您的扩展包在某种程度上是可运行的——即它们都有一个主要 Activity ——那么您可能会有一个自定义的 Intent 操作,并且您将使用 PackageManager.queryIntentActivities()
为您提供可以处理该操作的已安装 Activity 列表。
如果这些扩展包只提供资源而不提供代码,您可以选择拥有一个您可以按 Intent 识别的“虚拟”组件,如上文所述 - 即使您无意运行它 - 或者您可以寻找另一种方法。例如,如果除了您之外没有人制作这些扩展包,您可以简单地通过包名称来识别它们。
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);
关于java - 安卓应用扩展包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17800999/