Android灯光系统--通知灯深入分析【转】
本文转自:https://www.cnblogs.com/lkq1220/p/6406261.html
Android灯光系统--通知灯深入分析
通知的类别
声音
振动
闪灯
APP如何发出通知灯请求
getSystemService(获得通知服务)
构造notification
类别
其他参数(颜色,onMS,offMS)
发出通知
系统如何处理
启动通知Service
收到通知之后
分辨通知类型
执行响应操作
对于通知灯
获得LightService
执行灯光相关操作
APP如何获得通知服务
ContextImp:resigsterService
返回一个NotificationManager对象
构造Notification
NotificationManager.notify()将通知发送出去
发送通知之后如何调用通知灯
Service=getService() //获得某个服务
注册有Notification服务
根据名字Notification获得Service服务
Service.enqueueNotificationwithTag //放入通知队列
通过enqueueNotificationwithTag中的buzzBeepBlinkLocked判断是否是属于哪种通知类别
获得通知属于闪灯,调用updateLightsLocked()
取出notification当中的参数,调用mNotificationLights类当中的setFlashing
注册LightManager服务
根据ID从LightManager中返回获取mNotificationLights类
编写模拟通知灯安卓程序
定义按钮,控制20S之后熄屏亮灯
定义Flashing boolean型变量,用于控制按钮操作
设置按钮响应函数--判断按钮操作,改变按钮text值,并且发出通知
构造通知执行方法 - 实现Runnable接口方法
获得按钮状态
调用开通知灯函数
获得通知服务
构造通知,设置参数
发送通知
关闭通知灯函数
获得通知服务
取消通知灯服务
通知
- 延迟20S通知调用postDelayed函数
附上详细代码:
package com.example.alienware.app_0002_lightdemo;
import android.app.Notification;
import android.app.NotificationManager;
import android.os.Handler;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.Button;
import android.view.View;
/*
* 模拟熄屏时候,短信等通知发生时候,通知灯亮起
* 设置屏幕背光亮时间为15s,才可以进行下列实验
* Date:2017.2.16 Author:LKQ
* 代码原创者:韦东山老师
*/
public class MainActivity extends AppCompatActivity {
private Button mLightButton = null;
boolean Flashing = false;
final private int LED_NOTIFICATION_ID = 109;
private Handler mLightHandler = new Handler();
private LightRunnable mLightRunnable = new LightRunnable();
//实现消息通知后的执行方法
class LightRunnable implements Runnable{
@Override
public void run() {
if(Flashing){
BlueFlashLight(); //蓝灯闪亮
}
else{
ClearLED(); //关闭通知灯
}
}
}
private void BlueFlashLight()
{
NotificationManager nm = (NotificationManager)getSystemService( NOTIFICATION_SERVICE ); //获取通知服务
Notification notif = new Notification(); //构造通知类型
notif.flags = Notification.FLAG_SHOW_LIGHTS; //设置通知类型为通知灯
notif.ledARGB = 0xFF0000ff; //颜色
notif.ledOnMS = 1000;
notif.ledOffMS = 1000; //闪烁时间为1S
nm.notify(LED_NOTIFICATION_ID, notif); //发送通知
}
private void ClearLED()
{
NotificationManager nm = ( NotificationManager ) getSystemService( NOTIFICATION_SERVICE );
nm.cancel( LED_NOTIFICATION_ID ); //关闭通知灯
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mLightButton = (Button)findViewById(R.id.button);
mLightButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// Perform action on click
Flashing = !Flashing;
if (Flashing) {
mLightButton.setText("Stop Flashing the Light !");
} else {
mLightButton.setText("Flashing Light at 20S");
}
mLightHandler.postDelayed(mLightRunnable, 20000); //20S之后,即是熄屏时候,通知灯闪烁
}
});
}
}
Android灯光系统--通知灯深入分析【转】的更多相关文章
- Android灯光系统--通知灯深入分析
Android灯光系统--通知灯深入分析 通知的类别 声音 振动 闪灯 APP如何发出通知灯请求 getSystemService(获得通知服务) 构造notification 类别 其他参数(颜色, ...
- Android系统之灯光系统--通知灯深入分析
Android通知灯的深入分析 通知的类别 声音 振动 闪灯 APP如何发出通知灯请求 getSystemService(通知服务) 构造notification 类别 其他参数(颜色,onMS,of ...
- 8.5 Android灯光系统_源码分析_通知灯
参考文章(应用程序举例)how to use the LED with Android phonehttp://androidblogger.blogspot.jp/2009/09/tutorial- ...
- 【转】Android中通知的提示音、震动和LED灯效果小例子
通知(Notification)是 Android 系统中比较有特色的一个功能,当某个应用程序希望向用户发出一些提示信息,而该应用程序又不在前台运行时,就可以借助通知来实现.发出一条通知后,手机最上方 ...
- Android灯光系统--深入理解背光灯
Android灯光系统--深入理解背光灯 一.怎么控制背光灯(简述) APP将亮度值写入数据库 线程检测数据库的值是否发生变化 这种机制成为"内容观察者"--contentObse ...
- Android灯光系统_编写HAL_lights.c【转】
本文转载自:https://blog.csdn.net/qq_33443989/article/details/77074411 1>. 编写灯光系统的HAL层 之 HAL_light.c1&l ...
- 8.1 Android灯光系统_总体框架
1.框架 APP(java语言实现) ------------------------------- JNI(c++语言实现) 向上提供Java执行c函数的接口 向下访问HAL ------ ...
- android: 使用通知
8.1 使用通知 通知(Notification)是 Android 系统中比较有特色的一个功能,当某个应用程序希望向 用户发出一些提示信息,而该应用程序又不在前台运行时,就可以借助通知来实现.发 ...
- Android消息通知(notification)和PendingIntent传值
通知栏的自定义布局:转:http://blog.csdn.net/vipzjyno1/article/details/25248021 拓展 实现自定义的通知栏效果: 这里要用到RemoteViews ...
随机推荐
- Uva297 Quadtrees【递归建四分树】【例题6-11】
白书 例题6-11 用四分树来表示一个黑白图像:最大的图为根,然后按照图中的方式编号,从左到右对应4个子结点.如果某子结点对应的区域全黑或者全白,则直接用一个黑结点或者白结点表示:如果既有黑又有白,则 ...
- 《大话设计模式》c++实现 代理模式
代理模式 在代理模式(Proxy Pattern)中,一个类代表另一个类的功能.这种类型的设计模式属于结构型模式. 在代理模式中,我们创建具有现有对象的对象,以便向外界提供功能接口. 介绍 意图:为其 ...
- RobotFrameWork(一)robotfamework(python版)及Ride在windows安装
1.windows下的安装 (1)准备条件: python-2.7.3.msi robotframework-2.7.5.win32.exe wxPython2.8-win32-unicode-2.8 ...
- g++编译
命令: otool -L xx.lib 查看mac os 动态库依赖的包 ldd xx.so 查看linux动态库依赖的包 c++打包动态库java调用,mac上没问题到linux上就是不行,g++命 ...
- Win7 Python开发环境搭建
1. 下载Anaconda并安装 地址: https://www.anaconda.com/download/ Anaconda包括Python基础包与一系列科学计算包,安装后不用再单独安装Pyth ...
- Hive中变量的使用
1.Hive配置属性 (1)命令行方式 Hive配置属性存储于 hiveconf 命名空间中,该命名空间中的属性是可读写的.在查询语句中插入 '${hiveconf:变量名}',就可以通过 hive ...
- Hue中hive(hive cli)查询结果中显示列名,不带表名
hive cli中显示列名 进入hive cli后 set hive.cli.print.header=true; 之后出现列名,但是带了表名前缀,由于网上没找到资料,于是到官网肉眼扫描所有参数,总算 ...
- 1069: 统计字符gets函数
题目描述 编制程序,统计文本stdin中字符$出现的次数,并将结果写入文件stdout 输入 字符文本 输出 $次数 样例输入 as$dfkjhkjkjdhf asdfkj$lskdfj werijw ...
- Python+OpenCV图像处理(八)—— 图像直方图
直方图简介:图像的直方图是用来表现图像中亮度分布的直方图,给出的是图像中某个亮度或者某个范围亮度下共有几个像素.还不明白?就是统计一幅图某个亮度像素数量.比如对于灰度值12,一幅图里面有2000 个像 ...
- RTMP HLS HTTP 直播协议一次看个够
直播从2016年一路火到了2017年,如今要在自己的App里加入直播功能,只要找一个现成的SDK就行了,什么拍摄.美颜.推流,一条龙服务.不过作为直播身后最重要的部分:推流协议,很多人并不是很清楚.如 ...