Android 13:判断应用是否为动态壁纸的代码失效,getWallpaperInfo返回null
Android 13中动态壁纸状态检测失效问题
我需要检查自己开发的动态壁纸应用是否已被设置为当前动态壁纸。以下代码在Android ≤12版本中可正常运行,但在Android 13(SDK 33)环境下失效:
public static boolean isLiveWallpaper(Context context) { if (Service._handler == null) { return false; } WallpaperManager wpm = WallpaperManager.getInstance(context); WallpaperInfo info = wpm.getWallpaperInfo(); try { return (info != null && info.getPackageName().equals(context.getPackageName())); } catch (Exception e) { return false; } }
在Android 13中,wpm.getWallpaperInfo()始终返回null,我查阅谷歌及Android开发者文档后未找到该问题的相关原因说明。
补充说明:我使用以下代码设置动态壁纸可正常工作,但无法通过代码判断是否已成功设置:
Intent intent = new Intent(WallpaperManager.ACTION_CHANGE_LIVE_WALLPAPER); intent.putExtra(WallpaperManager.EXTRA_LIVE_WALLPAPER_COMPONENT, new ComponentName(context, Service.class)); context.startActivity(intent);
内容的提问来源于stack exchange,提问作者Simone Sessa
相关产品推荐
相关产品推荐

