【发布时间】:2012-03-09 16:34:02
【问题描述】:
我正在开发a library to allow apps to self-update,用于那些在 Android Market 之外分发的产品。
我最初的计划是包含将 APK 文件下载到内部存储的代码,然后通过 ContentProvider 和 content:// Uri 从那里安装它。但是,当我尝试这样做时,安装程序系统向 LogCat 转储了“Skipping dir:”警告并且未能实际安装它。一旦我切换到将 APK 下载到外部存储并使用 file:// Uri 和 ACTION_VIEW 安装程序 Intent,它就可以工作了。
“跳过目录:”消息似乎由parsePackage() 在PackageParser 中记录,这似乎假设它正在使用File。这表明我们不能使用 content:// Uri 值。
有没有人在application/vnd.android.package-archive Intent 和content:// Uri 上成功使用ACTION_VIEW?如果是这样,在设置 ContentProvider 时是否有一些特定的技巧使它起作用?
谢谢!
【问题讨论】:
-
这个 ContentProvider 的外观如何(特别是 openFile 实现)?
-
@Selvin:
ContentProvider和openFile()实现是允许提供文件所需要的,我使用an existing trivial implementation that I know works in general 作为基础。我的问题是是否有人成功地让它工作,因为我对源代码的阅读表明它不受支持,无论ContentProvider看起来如何。 -
我没试过,但是你看到这里描述的方法了吗:stackoverflow.com/a/4605040/377260
-
@iPaulPro:只有在构建固件时才有效。
标签: android