gpt4 book ai didi

java - 固定快捷方式中奇怪的应用程序图标重复 (Android O)

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:50:53 26 4
gpt4 key购买 nike

我正在为 Android O 设备(模拟器或物理设备)创建我的应用程序启动器图标的固定快捷方式,并发现了奇怪的行为。我的代码如下所示:

@TargetApi(Build.VERSION_CODES.O)
private void createPinnedShortcut(Context context) {
ShortcutManager shortcutManager = context.getSystemService(ShortcutManager.class);
if (shortcutManager != null) {
if (shortcutManager.isRequestPinShortcutSupported()) {
Intent intent= MainActivity.getLaunchIntent(this);
intent.setAction(Intent.ACTION_VIEW);

ShortcutInfo shortcut = new ShortcutInfo.Builder(context, "my_shortcut_id")
.setShortLabel(context.getString(R.string.my_app_description))
.setLongLabel(context.getString(R.string.my_app_long_description))
.setIcon(Icon.createWithResource(context, R.mipmap.my_app_icon))
.setIntent(intent)
.build();
shortcutManager.requestPinShortcut(shortcut, null);
} else
Toast.makeText(context, "Pinned shortcuts are not supported!", Toast.LENGTH_SHORT).show();
}
}

一切正常,但主屏幕上的启动器图标重复:

app launcher icon

有一个普通图标,但在右下角放置了另一个图标副本(大约小 30-40%)。

我的图标资源在res/mipmap-*dpi*文件夹中

有什么提示、线索吗?

更新

回复评论:

1) ./build/manifests/debug 下的 AndroidManifest 看起来像:

    <activity
android:name="ru.ivanovpv.cellboxkeeper.android.MainActivity"
android:exported="true"
android:label="@string/cellboxkeeper"
android:theme="@style/DefaultActivityTheme.Light"
android:windowSoftInputMode="adjustResize" >
<layout
android:defaultHeight="800dp"
android:defaultWidth="480dp"
android:gravity="top|end"
android:minHeight="320dp"
android:minWidth="240dp" />

<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter> <!-- handle cbx files -->
<intent-filter
android:icon="@mipmap/cellboxkeeper"
android:label="@string/cellboxkeeper"
android:logo="@mipmap/cellboxkeeper" >
<action android:name="android.intent.action.VIEW" />

<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />

<data
android:host="*"
android:mimeType="*/*"
android:pathPattern=".*\\.cbx"
android:scheme="content" />
</intent-filter>
<!-- receive files from android share intent -->
<intent-filter
android:icon="@mipmap/cellboxkeeper"
android:label="@string/addToCellboxKeeper" >
<action android:name="android.intent.action.SEND" />
<action android:name="android.intent.action.SEND_MULTIPLE" />
<data android:mimeType="*/*" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>

2) 没有像这样的文件夹:mipmap-*-v26。这是真实 apk 中文件夹的屏幕截图。文件夹中的所有图标都是正常的(没有重复)。

folders

还有其他版本吗?

最佳答案

我找到了解决方案,关键是属性android:logo:

<intent-filter
android:icon="@mipmap/cellboxkeeper"
android:label="@string/cellboxkeeper"
android:logo="@mipmap/cellboxkeeper" >
<action android:name="android.intent.action.VIEW" />

删除带有 android:logo 的行修复了重复问题。

希望有人,有时会使用并理解发生了什么

关于java - 固定快捷方式中奇怪的应用程序图标重复 (Android O),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53209552/

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