java - Android - 实现图标包支持

标签 java android icons assets

我正在尝试在我的应用程序中实现图标包支持,以便与 Apex、Nova、ADW 等一起使用的相同图标包也适用于我的应用程序。 使用这段代码,找到 appfilter xml 文件,然后解析它以获取可绘制名称,我已经能够使用免费主题来实现它:

Context context = createPackageContext(packageName, Context.CONTEXT_IGNORE_SECURITY);
                Resources res = context.getResources();
                String str = "";
                res.getAssets().list(str);

但是对于付费图标包,这是行不通的。返回的 Assets 为 0。我相信这是因为 JB+ 上的付费应用程序存在前向锁定,这使得 Assets 私有(private)化。 (此处概述:Accessing assets of other Android app on Jelly Bean)

我无法找到有关如何支持图标包和反编译图标包 apk 的任何信息我看不到任何内容提供程序,所以我只能假设这些启动器应用程序正在使用类似于我的方法来检索 Assets 。

有没有人能给我任何关于如何做到这一点的信息或为我指明正确的方向?

最佳答案

不是官方来源,而是Apex Launcher Theme Tutorial注意到

Next, open the appfilter.xml file under the res/xml directory. (Note: This file used to be located under the assets directory, but the new app encryption feature in JellyBean made it impossible for the theme engine to access assets of paid themes.)

所以看起来好像没有使用特殊的内容提供者 - 该机制必须简单地适应 Jelly Bean 上引入的安全机制。

关于java - Android - 实现图标包支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17317352/

相关文章:

icons - TortoiseHG 状态图标的含义

java - 防止 JavaFX 窗口窃取焦点

java - 在位置(槽)和坐标之间来回转换

java - 添加 admob jar 文件和类未找到错误

android - gradle 2.2.1 错误

delphi - Delphi 菜单项和工具栏按钮的无版权资源图像集合

java - 如何让枚举在实现接口(interface)时使用它们的 compareTo 方法?

java - 如何将泛型类型存储在缓存中以避免在检索时进行未经检查的强制转换?

android - 如何创建允许个人资料图片上传/更改的应用程序?

flutter - 想要在flutter的ListView中显示所有图标