Jak*_*ton 14 android android-manifest
我正在尝试从清单中的定义加载与当前活动和/或其父应用程序关联的徽标.此技术已成功加载与两者相关联的标题和图标,但徽标始终返回null或0.
以下是我正在使用的清单中的相关信息:
<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">
Run Code Online (Sandbox Code Playgroud)
与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;
Run Code Online (Sandbox Code Playgroud)
有谁知道如何正确加载这些目标中的一个或两个的徽标?
编辑:徽标支持需要API级别9.我正在测试的设备是所有运行API级别10的模拟器和物理设备.此代码永远不会在3.0+上执行.
根据我的测试,您的代码可以在 Honeycomb 设备上正常运行,但不能在 Gingerbread 或以下设备上运行。这似乎意味着该android:logo功能虽然存在于 API 级别 8 中,但在底层平台中并未正确实现。也就是说,相同的应用程序 apk 在 8-10 级设备上不保留徽标属性,但在 11 级设备上保留。这意味着问题不在于代码或 AndroidManifest.xml,而在于平台。
| 归档时间: |
|
| 查看次数: |
6373 次 |
| 最近记录: |