gpt4 book ai didi

android - 从 list 中以编程方式加载 Activity 和/或应用程序 Logo

转载 作者:可可西里 更新时间:2023-11-01 19:07:36 24 4
gpt4 key购买 nike

我正在尝试从 list 中的定义加载与当前 Activity 和/或其父应用程序关联的 Logo 。此技术已成功加载与两者关联的标题和图标,但 Logo 始终返回 null 或 0。

这是我正在使用的 list 中的相关信息:

<application
android:icon="@drawable/ic_launcher"
android:logo="@drawable/ad_logo"
android:label="@string/app_name"
android:hardwareAccelerated="true">

<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:logo="@drawable/ad_logo">

activity 是上面定义的 Activity 的一个实例,我尝试了以下方法(结果内联注释):

PackageManager pm = activity.getPackageManager();
ComponentName cn = activity.getComponentName();
ApplicationInfo ai = activity.getApplicationInfo();

//ACTIVITY LABEL: Works
pm.getActivityInfo(cn, PackageManager.GET_ACTIVITIES).loadLabel(pm);

//APPLICATION LABEL: Works
ai.loadLabel(pm);
//APPLICATION LABEL: Works
pm.getApplicationLabel(ai);

//ACTIVITY ICON: Works
pm.getActivityInfo(cn, PackageManager.GET_ACTIVITIES).loadIcon(pm);
//ACTIVITTY ICON: Works
pm.getActivityIcon(cn);

//APPLICATION ICON: Works
pm.getApplicationIcon(ai);
//APPLICATION ICON: Works
ai.loadIcon(pm);

//ACTIVITY LOGO: Does not work
pm.getActivityInfo(cn, PackageManager.GET_ACTIVITIES).loadLogo(pm);
//ACTIVITY LOGO: Does not work
pm.getActivityInfo(cn, PackageManager.GET_ACTIVITIES).logo
//ACTIVITY LOGO: Does not work
pm.getActivityLogo(cn);

//APPLICATION LOGO: Does not work
pm.getApplicationLogo(ai);
//APPLICATION LOGO: Does not work
pm.getApplicationLogo(activity.getApplication().getPackageName());
//APPLICATION LOGO: Does not work
ai.loadLogo(pm);

//APPLICATION LOGO: Does not work
pm.getApplicationInfo(ai.packageName, 0).loadLogo(pm);
//APPLICATION LOGO: Does not work
ai.logo;

有谁知道如何为这两个目标正确加载 Logo ?

编辑: Logo 支持需要 API 级别 9。我正在测试的设备是模拟器和物理设备,它们都运行 API 级别 10。此代码永远不会在 3.0+ 上执行。

最佳答案

根据我的测试,您的代码可以在 Honeycomb 设备上正常运行,但不能在 Gingerbread 或以下设备上运行。这似乎意味着 android:logo 功能虽然存在于 API 级别 8 中,但并未在底层平台中正确实现。也就是说,同一个应用程序apk在Level 8-10设备上是不保留logo属性的,但是在Level 11设备上有。这意味着问题不在于代码或 AndroidManifest.xml,而在于平台。

关于android - 从 list 中以编程方式加载 Activity 和/或应用程序 Logo ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6105504/

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