启动动态壁纸可以通过调用WallpaperManager.getIWallpaperManager().setWallpaperComponent()方法完成。它接受一个ComponentName类型的参数,用于将希望启动的壁纸的WallpaperService的ComponentName告知WallpaperManagerService。WallpaperManager.getIWallpaperManager()方法返回的是WallpaperManagerService的Bp端。因此setWallpaperComponent()方法的实现位于WallpaperManagerService之中。参考其实现:

**WallpaperManagerService.java-->WallpaperManagerService.setWallpaperComponent()**

```

public void setWallpaperComponent(ComponentNamename) {

// 设置动态壁纸需要调用者拥有一个签名级的系统权限

checkPermission(android.Manifest.permission.SET_WALLPAPER_COMPONENT);

synchronized (mLock) {

/* **① 首先从mWallpaperMap中获取壁纸的运行信息WallpaperData。**

WallpaperManagerService支持多用户机制,因此设备上的每一个用户可以设置自己

的壁纸。mWallpaperMap中为每一个用户保存了一个WallpaperData实例,这个实例

中保存了和壁纸运行状态相关的信息。例如WallpaperService的ComponentName,

到WallpaperService的ServiceConnection等。于是当发生用户切换时,

WallpaperManagerService可以从mWallpaperMap中获取新用户的WallpaperData,

并通过保存在其中的ComponentName重新启动该用户所设置的壁纸。因此,

当通过setWallpaperComponent()设置新壁纸时,需要获取当前用户的WallpaperData,

并在随后更新其内容使之保存新壁纸的信息 */

intuserId = UserHandle.getCallingUserId();

WallpaperData wallpaper = mWallpaperMap.get(userId);

......

final long ident = Binder.clearCallingIdentity();

try{

......

// **② 启动新壁纸的WallpaperService**

bindWallpaperComponentLocked(name, false, true, wallpaper, null);

}finally {

Binder.restoreCallingIdentity(ident);

}

}

}

```

>[info] 注意 WallpaperManager.getIWallpaperManager()并没有作为SDK的一部分提供给开发者。因此第三方应用程序是无法进行动态壁纸的设置的。

android动态壁纸2.2.1,8.2.1启动动态壁纸的方法相关推荐

  1. android 前后同时预览_用上这些官方动态壁纸,让你的 Android 主屏简洁又优雅

    近年来,越来越多的 Android 厂商都选择通过定制动态壁纸的方式,来为自家手机打造独特的使用体验.一些 OEM 厂商甚至能跳出常规框架.赋予其与众不同的视觉效果和交互方式,只是一张动态壁纸,就足以 ...

  2. 苹果5壁纸_冷高轮时间wallpaper Engine动态时钟壁纸 小人人体形状造型数字 手势数字 麻将数字 扑克数字 时钟壁纸...

    冷高轮时间wallpaper Engine电脑动态时钟壁纸壁纸 小人人体形状造型数字 手势数字 麻将数字 扑克数字 动态时钟壁纸 1.需要在steam中下载wallpaper Engine 安装好wa ...

  3. Android零基础入门第44节:ListView数据动态更新

    2019独角兽企业重金招聘Python工程师标准>>> 经过前面几期的学习,关于ListView的一些基本用法大概学的差不多了,但是你可能发现了,所有ListView里面要填充的数据 ...

  4. android竖屏固定,安卓教程:设置竖屏固定壁纸

    Android默认的壁纸设置是横屏滚动的,如果把心爱的女神/男神的照片设置为壁纸那叫一个惨不忍睹啊.相信总会有人为此而烦恼!今天少数派课堂教大家如何设置竖屏固定壁纸. 前言:由于设置竖屏固定壁纸的方法 ...

  5. android 动态加载sdk,LiteAVSDK集成,因此可以动态加载库

    在Android开发中,Android Studio用于集成第三方SDK(例如,腾讯视频云移动直播,播放器,短视频以及实时音频和视频). 通常有两种集成方法: aar集成和jar + so集成. An ...

  6. 简约动态时钟h5源码分享-可做桌面动态壁纸

    简约动态时钟h5源码分享-可做桌面动态壁纸

  7. Android 判断颜色为深颜色还是浅颜色来动态调整app文字和图标颜色

    Android 判断颜色为深颜色还是浅颜色来动态调整app文字和图标颜色 前言 解决 方案1 方案2 完事 前言 现在,项目中有个需求就是 app 的顶部 title bar 的颜色能根据背景图片动态 ...

  8. android one 壁纸,壁纸喵-看到就想哇哦一声的壁纸

    应用截图 × 截图预览 关闭 新版特性 1.[新增]新增高斯模糊壁纸生成器 2.[优化]单击首页Tab可回到顶部 1.0.82 1.[更新]首页全新改版,界面更加美观 2.[横屏]横屏壁纸更换源,壁纸 ...

  9. Android插件化学习之路(一)之动态加载综述

    前段时间,公司项目完成了插件化的开发,自己也因此学习了很多Android插件化的知识,于是想把这些内容记录下来,本次带来Android插件化的第一篇:动态加载综述 Android插件化学习之路(一)之 ...

最新文章

  1. iphone8p百度云认证_探秘百度数据工厂Pingo的多存储后端数据联合查询技术
  2. VBOX Ubuntu设置与Windows的共享文件夹
  3. 中文ocr识别通过crnn
  4. Spring定时器--时间设置规则
  5. 看麦田“蚂蚁网” 想网络新社区
  6. Python中变量作用域问题
  7. Spring5的系统架构
  8. IT行业培训必读:优秀程序员的十个习惯
  9. Python保留字,keyword
  10. 【JSOI2007】【BZOJ1029】建筑抢修(贪心,堆)
  11. 分享Java中模拟Ping操作的一个类
  12. (教程)手把手教你如何申请软件著作权
  13. termux python教程_Termux 入门教程:架设手机 Server 下载文件
  14. SpringBoot 动态添加定时任务
  15. 2011年 最新Gmail改版后 申请免费的Gmail企业邮箱图文教程
  16. 云上印尼:“数”影婆娑的千岛之国
  17. 为战而生的联想拯救者Pro,你值得拥有的手游神器
  18. KusionStack 开源有感|历时两年,打破 “隔行如隔山” 困境
  19. 三星被指盗取FinFET芯片专利技术 将被起诉
  20. 精彩回顾 |全栈人工智能、区块链等服务亮相2019华为云峰会香港站

热门文章

  1. Python开发的环境安装和配置
  2. 软件度量始于规模,终于规模
  3. redis7.0多AOF文件
  4. 部署 heapster 插件
  5. python中的切片操作
  6. 人生就是不断突破自我的过程。
  7. JS点击创建按钮后的按钮事件
  8. Parallel programming constructs in Java;并行程序;Atomicity
  9. JAVA获取淮河实时的水质数据
  10. SpringBoot 整合WebFlux