博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android - Daydream 互动屏保
阅读量:6844 次
发布时间:2019-06-26

本文共 2186 字,大约阅读时间需要 7 分钟。

Android Daydream 互动屏保

API19 API23

Create:2016-03-01

继承DreamService来实现一个自定义屏保

Dreams是当充电的设备空闲,或者插入底座时显示的互动屏保。在展览或陈列时,Dreams为APP提供一个定制的展示方式。

DreamService的生命周期

1.onAttachedToWindow()

初始化设置,在这里可以调用 setContentView()

2.onDreamingStarted()

互动屏保已经启动,这里可以开始播放动画或者其他操作

3.onDreamingStopped()

在停止 onDreamingStarted() 里启动的东西
4.onDetachedFromWindow()
在这里回收前面调用的资源(比如 handlers 和 listeners)

另外,onCreate 和 onDestroy 也会被调用。但要复写上面的几个方法来执行初始化和销毁操作。

manifest 声明

为了能让系统调用,你的 DreamService 应该在 APP 的 manifest 中注册:

如果填写了 <meta-data> 元素,dream的附加信息就被指定在XML文件的 <dream> 元素中。

通常提供的附加信息是对互动屏保的自定义设置,指向一个自己写的Activity。

比如:res/xml/my_dream.xml

这样在Settings-Display-Daydream-你的Daydream选项右边会出现一个设置图标。点击此图标可打开指定的activity。

当目标api>=21,必须在manifest中申请BIND_DREAM_SERVICE权限,比如:

如果不申请权限,这个互动屏保将无法启动并有类似报错:

system_process W/ActivityManager: Unable to start service Intent { act=android.service.dreams.DreamService flg=0x800000 cmp=com.google.android.deskclock/com.android.deskclock.Screensaver } U=0: not found
system_process E/DreamController: Unable to bind dream service: Intent { act=android.service.dreams.DreamService flg=0x800000 cmp=com.google.android.deskclock/com.android.deskclock.Screensaver }
system_process I/DreamController: Stopping dream: name=ComponentInfo{com.google.android.deskclock/com.android.deskclock.Screensaver}, isTest=false, canDoze=false, userId=0

demo

AndroidManifest.xml 注册这个service;里面指定的图标和标题都显示在设置中

MyDayDream.java 互动屏保的定义

package com.rust.service;import android.service.dreams.DreamService;import com.rust.aboutview.R;public class MyDayDream extends DreamService {        @Override    public void onAttachedToWindow() {        super.onAttachedToWindow();        // Exit dream upon user touch        setInteractive(false);        // Hide system UI        setFullscreen(true);        // Set the dream layout        setContentView(R.layout.my_day_dream);    }}

my_day_dream.xml 互动屏保的布局文件;只有一行字

在Settings-Display-Daydream中可以找到新增的选项

daydream_settings.png

转载地址:http://wgdul.baihongyu.com/

你可能感兴趣的文章
上传应用
查看>>
Cocos2d-x-v3动作体系
查看>>
ChargeSystem——One,Two,Three
查看>>
【ASP.NET】验证控件
查看>>
FZU 1752 a^b%c
查看>>
[华为机试真题]72.操作系统任务调度问题
查看>>
解决scrollView上subView下移20point问题的一种方式
查看>>
前端面试之关于HTTP协议
查看>>
利用 Matplotlib 绘制数据图形(二)
查看>>
iOS概念攻坚之路(二):Runtime
查看>>
关于前端请求发送时间时而长时而短问题(stalled a lot)
查看>>
Python 工匠:编写条件分支代码的技巧
查看>>
记一次前端面试经历
查看>>
带你探索JUnit 5.4
查看>>
<暗时间> 时间, 不在于你拥有多少, 而在于你怎样使用
查看>>
单例 - iOS
查看>>
戛纳电影节百花齐放,中国明星衣着品味紧跟时尚前沿
查看>>
mysql 存储emoji表情
查看>>
10年测试总监经验分享,你与优秀工程师的距离!
查看>>
2019年在哪里找好的高层次人才扶持政策?
查看>>