废话不多说,主要代码:

public static void intent2SetWallPaper(Context context, String path) {

Uri uriPath = getUriWithPath(path);

Intent intent;

// 针对EMUI

if (RomUtil.isHuaweiRom()) {

try {

ComponentName componentName = new ComponentName("com.android.gallery3d", "com.android.gallery3d.app.Wallpaper");

intent = new Intent(Intent.ACTION_VIEW);

intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);

intent.setDataAndType(uriPath, "image/*");

intent.putExtra("mimeType", "image/*");

intent.setComponent(componentName);

context.startActivity(intent);

} catch (Exception e) {

e.printStackTrace();

try {

WallpaperManager.getInstance(context.getApplicationContext()).setBitmap(ImageUtil.getImageBitmap(path));

} catch (IOException e1) {

e1.printStackTrace();

}

}

// 针对MIUI

} else if (RomUtil.isMiuiRom()) {

try {

ComponentName componentName = new ComponentName("com.android.thememanager", "com.android.thememanager.activity.WallpaperDetailActivity");

intent = new Intent("miui.intent.action.START_WALLPAPER_DETAIL");

intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);

intent.setDataAndType(uriPath, "image/*");

intent.putExtra("mimeType", "image/*");

intent.setComponent(componentName);

context.startActivity(intent);

} catch (Exception e) {

e.printStackTrace();

try {

WallpaperManager.getInstance(context.getApplicationContext()).setBitmap(ImageUtil.getImageBitmap(path));

} catch (IOException e1) {

e1.printStackTrace();

}

}

// 其他

} else {

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {

context.startActivity(WallpaperManager.getInstance(context.getApplicationContext())

.getCropAndSetWallpaperIntent(getUriWithPath(path)));

} else {

try {

WallpaperManager.getInstance(context.getApplicationContext()).setBitmap(ImageUtil.getImageBitmap(path));

} catch (IOException e1) {

e1.printStackTrace();

}

}

}

}

使用方式:

1.添加依赖:

Step 1. 在你project层级的build.gradle中,添加仓库地址:

allprojects {

repositories {

...

maven { url 'https://jitpack.io' }

}

}

Step 2. 在你主module的build.gradle中添加依赖:

dependencies {

implementation 'com.github.SherlockGougou:SetWallpaper:v1.2.0'

}

2.调用代码:

SetWallpaper.setWallpaper(MainActivity.this, // 上下文

path, // 图片绝对路径

APP_AUTHORITY);// authority(7.0 文件共享权限)

android 设置壁纸,Android 代码设置壁纸的方式,兼容各大ROM相关推荐

  1. Android的手机ip代码设置------有图有真相

    首先得说,这个用代码设置手机ip的功能并不常用,只适用于特殊场景需求,例如app刷下载量,不断地更换手机ip来下载应用市场的公司要的应用. 当然我又不得不吐槽各大应用厂商和谷歌7.0系统,现在的手机系 ...

  2. Android中发现java代码设置的字体过大

    转自:http://www.2cto.com/kf/201211/170733.html //给一个id为name的TextView设置字体大小  TextView mName = (TextView ...

  3. Android之CheckBox进行代码设置setChecked(true)会触发setOnCheckedChangeListener事件

    1 问题 我们对CheckBox设置了setOnCheckedChangeListener监听,代码里面对CheckBox单独代码进行设置勾选(setChecked(true))的时候,会触发OnCh ...

  4. 抖音上火的电脑代码cmd_抖音上的表白代码有哪些怎么弄 电脑代码设置生成方法...

    近期在抖音之中流行起了许多表白的套路,最有意思的就是抖音表白代码怎么设置呢?为了帮助大家表白成功,小编特意带来了表白代码设置方法详解. 抖音表白代码怎么设置 方法一 msgbox("做我女朋 ...

  5. 一句代码设置 android 手机桌面视频壁纸

    VideoWallpaper 项目地址:DingMouRen/VideoWallpaper  简介:一句代码设置 android 手机桌面视频壁纸 更多:作者   提 Bug 标签: VideoWal ...

  6. Android代码设置锁屏壁纸

    设置锁屏时壁纸(不包括桌面壁纸) private void setLockWallPaper() {WallpaperManager wallpaperManager = WallpaperManag ...

  7. android 设置系统壁纸,Android HttpURLConnection下载网络图片设置系统壁纸

    需求: 壁纸是url链接,get就能请求到,所以就用get请求到图片,把图片转化为bitmap,然后设置壁纸. 代码: 这里我封装了工具类 package xxxxx.utils; import an ...

  8. Android HttpURLConnection下载网络图片,设置系统壁纸

    需求: 壁纸是url链接,get就能请求到,所以就用get请求到图片,把图片转化为bitmap,然后设置壁纸. 代码: 这里我封装了工具类 package xxxxx.utils;import and ...

  9. android4.1动态壁纸,Android 4.1 设置默认开机动态壁纸

    需要修改的文件为: 找到SourceCode/framework/base/core/res/res/values/config.xml中的: @null 包名/动态壁纸服务名 比如将默认壁纸更改为& ...

最新文章

  1. 通信系统未编码、卷积码与格雷码的仿真性能比较
  2. PostgreSQL下安装pg_stat_statements
  3. python合并多个txt文件_python如何合并多个txt文件删除所有重复行并生成新文件
  4. 三星Galaxy S22 Ultra真机首曝:颜值与实力并存堪称完美
  5. GiraffeDet的学习笔记
  6. 巧妇难为无米之炊 走出软件测试的困境
  7. Pytorch——神经网络工具箱nn
  8. gcc g++ 参数
  9. 微信小程序点播音频服务器,微信小程序无法播放本地音频
  10. 谷尼国际软件-企业竞争情报系统
  11. PL0编译器分析与语法扩展
  12. org.apache.taglibs.standard.tlv.JstlXmlTLV scanned from multiple locations
  13. 文学-谚语-英文谚语:英文谚语
  14. android 视频画面拼接,Android实现视频剪切、视频拼接以及音视频合并
  15. 王者荣耀服务器维护到几点,今晚王者荣耀更新到几点 王者荣耀维护时间王者荣耀公告...
  16. 计算机网络延展-桥接器(网桥)
  17. 为了网络安全被束缚的无人机背后的故事!
  18. 10个常用的软件测试工具,你不容错过
  19. 计算机维护维修实训报告,计算机维护维修实训报告.doc
  20. OpenCV级联分类器训练与使用实战教程-贾志刚-专题视频课程

热门文章

  1. 针对手机连WIFI微信公众号等图片加载缓慢问题——解决方案
  2. OkHttp3源码分析二 拦截器 上
  3. 数据运营是什么,怎么做,在哪做
  4. 【教学类-22-01】20221207《八款字体的描字帖-2*4格横条-用订书机》(中班描字)
  5. Java设计模式之Builder模式
  6. 计算机网络基本知识(八):域名、IP地址简介及分类
  7. 人工智能入门教材,我来推荐
  8. Python3输出格式化时间yyyy-mm-dd HH:MM:SS
  9. Gateway网关的使用
  10. 【C语言】fwrite 写如0X0A时,自动添加0X0D的解决方法