如何通过Intent与内置库实现点击按钮设置主屏及锁屏壁纸
Android 调用系统内置壁纸设置对话框方案
直接调用系统原生的壁纸设置Intent,就能弹出包含「主屏」「锁屏」「两者都设置」选项的对话框,无需自行实现弹窗逻辑,具体代码如下:
Java 实现
在按钮点击事件中添加以下代码:
// 基础调用,打开系统壁纸选择界面 Intent intent = new Intent(Intent.ACTION_SET_WALLPAPER); startActivity(Intent.createChooser(intent, "设置壁纸")); // 若要指定特定图片设置,可传入图片Uri Uri targetImageUri = Uri.parse("content://media/external/images/media/xxx"); // 替换为你的图片Content Uri Intent imageIntent = new Intent(Intent.ACTION_SET_WALLPAPER); imageIntent.setDataAndType(targetImageUri, "image/*"); startActivity(Intent.createChooser(imageIntent, "设置壁纸"));
Kotlin 实现
// 基础调用 val intent = Intent(Intent.ACTION_SET_WALLPAPER) startActivity(Intent.createChooser(intent, "设置壁纸")) // 指定图片的调用方式 val targetImageUri = Uri.parse("content://media/external/images/media/xxx") // 替换为目标图片Uri val imageIntent = Intent(Intent.ACTION_SET_WALLPAPER).apply { setDataAndType(targetImageUri, "image/*") } startActivity(Intent.createChooser(imageIntent, "设置壁纸"))
权限说明
- Android 10(API 29)及以上:无需额外权限,系统壁纸应用会处理权限逻辑
- Android 6.0(API 23)至 Android 9(API 28):需提前申请
WRITE_EXTERNAL_STORAGE权限,并在运行时动态请求
内容的提问来源于stack exchange,提问作者Samad Pracha
相关产品推荐
相关产品推荐

