Android修改最近应用预览信息

260 阅读1分钟

每个应用的预览信息主要包括名称、图标、顶部栏颜色等。

11880671-e7e64ce32809e326.png 默认情况下这些信息会先从应用栈顶Activity的manifest配置中读取:android:icon--图标,android:label--名称,android:theme--各种颜色配置。 如果栈顶Activity没有配置相应的属性,则会使用application的对应属性值。 从Android 5.0开始,可以通过Activity的setTaskDescription方法修改应用名称、图标等信息。相当于先读取栈顶Activity提供的TaskDescription中的配置,如果没有值或者是非法值则按默认顺序读取manifest配置。 但是ActivityManager$TaskDescription内的mIconRes字段是在9.0版本(SDK28)才添加的,相关的构造函数google没有给出版本要求提示,使用在低于9.0版本手机上一定会崩溃,哪怕包在try catch中也会崩溃。

java.lang.NoSuchMethodError: No direct method <init>(Ljava/lang/String;I)V in class Landroid/app/ActivityManager$TaskDescription; or its super classes (declaration of 'android.app.ActivityManager$TaskDescription' appears in /system/framework/framework.jar

所以修改图标最好使用传入Bitmap的构造函数。