WallpaperManager работает некорректно на 12 Андроиде
При вызове wallpaperManager на 12 Андроиде вызывается onDestroy и затем сразу onCreate. И при вызове wallpaperManager.setBitmap(bitmap) изменяется изображение на домашнем экране и блокировки, хотя на всех устройствах кроме Android 12 устанавливается только на домашний экран, как и должно быть.
final WallpaperManager wallpaperManager = WallpaperManager.getInstance(getApplicationContext());
switch (ImageDialog.getWhere()) {
case 1:
try {
wallpaperManager.setBitmap(bitmap); // на домашний экран
} catch (IOException e) {
e.printStackTrace();
}
break;
case 2:
try {
wallpaperManager.setBitmap(bitmap, null, true, WallpaperManager.FLAG_LOCK); // на экран блокировки
} catch (IOException e) {
e.printStackTrace();
}
break;
case 3:
try {
wallpaperManager.setBitmap(bitmap); // на домашний экран
} catch (IOException e) {
e.printStackTrace();
}
try {
wallpaperManager.setBitmap(bitmap, null, true, WallpaperManager.FLAG_LOCK); // на экран блокировки
} catch (IOException e) {
e.printStackTrace();
}
break;
}