随时随地技术实战干货,获取项目源码、学习资料,请关注源代码社区公众号(ydmsq666)

更换壁纸要用到WallpaperManager,它提供了clear()方法清除壁纸,还提供了如下方法设置系统的壁纸:

setBitmap(Bitmap bitmap):将壁纸设置为bitmap所代表的位图。

setResource(int resid):将壁纸设置为resid资源所代表的图片。

setStream(InputStream data):将壁纸设置为data数据所代表的图片。

本示例通过AlarmManager来周期性地调用某个Service,从而让系统实现定时更换壁纸的功能。代码如下:

Activity:

package com.guyun.activity;import com.guyun.alarmchangewallpaper.R;
import com.guyun.service.ChangeWallpaperService;import android.app.Activity;
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.app.Service;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;public class ChangeWallpaperActivity extends Activity {//定义AlarmManager对象private AlarmManager aManager;
private Button start,stop;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);start=(Button) findViewById(R.id.main_btn_start);stop=(Button) findViewById(R.id.main_btn_stop);//获取AlarmManager服务对象aManager=(AlarmManager) getSystemService(Service.ALARM_SERVICE);//指定要启动的Service组件Intent intent=new Intent(ChangeWallpaperActivity.this,ChangeWallpaperService.class);//创建PendingIntent对象final PendingIntent pi=PendingIntent.getService(ChangeWallpaperActivity.this,0, intent, 0);start.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {Log.i("onClick", "进入onClick");//设置每隔3秒执行pi代表的组件一次aManager.setRepeating(AlarmManager.RTC_WAKEUP, 0, 3000, pi);start.setEnabled(false);stop.setEnabled(true);Toast.makeText(ChangeWallpaperActivity.this, "壁纸定时更换启动成功啦", Toast.LENGTH_SHORT).show();}});stop.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {start.setEnabled(true);stop.setEnabled(false);//取消对pi的调度aManager.cancel(pi);}});      }}

Service:

package com.guyun.service;import java.io.IOException;import com.guyun.alarmchangewallpaper.R;import android.app.Service;
import android.app.WallpaperManager;
import android.content.Intent;
import android.os.IBinder;
import android.util.Log;public class ChangeWallpaperService extends Service {// 定义定时更换壁纸的资源int[] wallpapers = new int[] { R.drawable.whatsnew_fornew_01,R.drawable.whatsnew_fornew_02, R.drawable.whatsnew_fornew_03,R.drawable.whatsnew_fornew_04, R.drawable.whatsnew_fornew_05 };// 定义系统的壁纸管理服务WallpaperManager wManager;// 定义当前所显示的壁纸int current = 0;@Overridepublic int onStartCommand(Intent intent, int flags, int startId) {Log.i("onStartCommand", "进入onStartCommand");// 如果到了最后一张重新开始if (current >= wallpapers.length) {current = 0;}try {// 改变壁纸wManager.setResource(wallpapers[current++]);} catch (IOException e) {e.printStackTrace();}return super.onStartCommand(intent, flags, startId);}@Overridepublic void onCreate() {super.onCreate();Log.i("onCreate", "进入onCreate");// 初始化WallpaperManager对象wManager = WallpaperManager.getInstance(this);}@Overridepublic IBinder onBind(Intent intent) {return null;}
}

加上如下权限:

<uses-permission android:name="android.permission.SET_WALLPAPER" />

本程序还可以和之前做过的SD卡文件浏览器结合起来,让用户可以添加SD卡中的图片作为可供更换的壁纸图片。

使用AlarmManager定时更换壁纸相关推荐

  1. 使用AlarmManager定时更换壁纸----之二

    import java.io.IOException; import android.app.Service; import android.app.WallpaperManager; import ...

  2. 我的Android进阶之旅------gt;Android使用AlarmManager全局定时器实现定时更换壁纸

    该DEMO将会通过AlarmManager来周期的调用ChangeService,从而让系统实现定时更换壁纸的功能. 更换壁纸的API为android.app.WallpaperManager,它提供 ...

  3. 我的Android进阶之旅------Android使用AlarmManager全局定时器实现定时更换壁纸

    该DEMO将会通过AlarmManager来周期的调用ChangeService,从而让系统实现定时更换壁纸的功能. 更换壁纸的API为android.app.WallpaperManager,它提供 ...

  4. AlarmManager学习之定时更换壁纸

    本程序通过AlarmManager周期性的调用某个Service ,从而让系统定时的更换壁纸的功能.更换壁纸的API 是WallPaperManager,它提供了 clear()方法来清除壁纸.还提供 ...

  5. android 通过service 执行AlarmManager 自动更换壁纸

    自动更换壁纸是通过服务在后台进行的,所以 新建一个类继承service服务 先附上详细的解析代码: package com.example.changebz; import java.io.IOExc ...

  6. Windows更换壁纸脚本 获取必应壁纸 定时更换壁纸 c#调用.ps1脚本

    想给电脑换上必应的每日壁纸,之前使用的是Bing Wallpaper软件,这个软件每日刷新只能更换为前一天的壁 纸,而且需要自启动更换壁纸,于是打算用定时计划powershell脚本完成这个工作. 1 ...

  7. Python桌面自定义---实现定时更换桌面壁纸

    Python桌面自定义---实现定时更换桌面壁纸 1 效果 2 获取大量壁纸 3 Python代码实现定时更换壁纸 1 效果   大致效果如下,设置过定时更换壁纸的应该都知道是啥场景. 2 获取大量壁 ...

  8. win10主题更换_利用termuxapi手机定时更换网络随机壁纸;免费申请小米收款宝

    1.再来发一个没有什么软用的教程,利用termux-api手机定时更换网络壁纸. 国产定制系统,有很多主题,更换随机壁纸也相对比较简单.但是对于原生或者类原生系统,如一加,索尼,诺基亚,pixel等等 ...

  9. Android开发之自动更换壁纸

    本程序主要实现了: 1.使用AssetManager将assets目录中的文件复制到SD卡的指定位置 2.使用AlarmManager全局定时器,周期性的启动指定组件切换壁纸 3.使用SharedPr ...

最新文章

  1. 节前福利 | 三位大佬带你从客户成功、销售、市场端打造 To B 运作体系 !
  2. 记录一次K8s-Flannel插件的坑
  3. Cubieboard安装Debian在Nand中
  4. 3测试图片显示置信度_云上的移动性能测试平台
  5. 基于JAVA+SpringMVC+Mybatis+MYSQL的服装商城
  6. 剧情介绍:“我是山姆”
  7. rgb红色范围_RGB与BRG模式
  8. vbs脚本的基本使用
  9. 计算机组成原理实验箱教程,计算机组成原理实验箱介绍.ppt
  10. ES新特性之Reflect对象
  11. 2022年疑点事件:NMN到底是什么?nmn到底有没有用?
  12. 计算机网络——模拟信号(四)
  13. DDD 领域事件设计(基于Guava EventBus二次封装)
  14. 凯德中国 × 阿里云 × 奇点云 | 沉淀数据资产,遇见数智未来
  15. 秋招公司真题刷题2019-2020java工程师
  16. 王欣复出后的第一款产品
  17. 同步和异步Socket多线程编程基本模型介绍
  18. AD批量修改网络标号字体
  19. 安卓studio 添加后台bgm音乐的几种方法
  20. Web3.0 使用说明书

热门文章

  1. 基于python对天气的预测_使用机器学习预测天气(第一部分)
  2. 预测西雅图降雨情况(逻辑回归实现)
  3. JAVA小游戏----俄罗斯方块
  4. kubernetes 之 pod 调度策略(一)
  5. 二进制与十进制 互转 过程
  6. RT-Thread 应用篇 — 在STM32L051上使用 RT-Thread (一、无线温湿度传感器 之 新建项目)
  7. Vitis尝鲜(一)
  8. php端实现重定向,php实现重定向的三种实现方式
  9. 稀微离线编程器应用笔记:华大HC32F460烧录
  10. 【音频】wave格式解析