gpt4 book ai didi

android - 如何跨包引用Android 'assets'?

转载 作者:塔克拉玛干 更新时间:2023-11-02 18:51:29 24 4
gpt4 key购买 nike

我有一个以“免费”和“专业”版本发布的 Android 应用程序。我已经使用两个版本都引用的基础“库”项目设置了我的项目,这样我的包集如下所示:

  • com.example.myapp
  • com.example.myapp.free
  • com.example.myapp.pro

我的基础“库”项目中的一个 Activity 类将帮助文件加载到 WebView 中:WebView.loadUrl("file:///android_asset/help.html")。此类在“免费”和“专业”版本中都有扩展(出于本问题范围之外的原因),但我希望这两个版本都引用相同的 HTML 文件(即父包中的文件)。然而,在我当前的设置下,需要将 HTML 文件复制到“com.example.myapp.free”和“com.example.myapp.pro”包下的“assets”文件夹中,用于“file://”/android_asset/"工作的 URI。

有没有办法指定“file:///android_asset/”URI,以便它访问父包中的“assets”目录?

我发现的部分解决方案涉及从“原始”目录读取 HTML 文件,然后将生成的字符串推送到我的 WebView 对象,但是对于纯文本 HTML 页面(例如,一个有图像,就像我的一样)。

干杯。

最佳答案

由于 Andrew White 没有解释如何做他所反对的事情,我将向您展示:

Context otherContext = context.createPackageContext("other.package.name", 0);
AssetManager am = otherContext.getAssets();

看起来还不错。而且我已验证这两个包不需要共享用户 ID。

关于android - 如何跨包引用Android 'assets'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5493396/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com