android 通知灯 测试,Android灯光系统通知灯【转】

标签:

一、通知灯应用程序的编写

1、首先实现一个按钮功能

xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"

android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"

android:paddingRight="@dimen/activity_horizontal_margin"

android:paddingTop="@dimen/activity_vertical_margin"

android:paddingBottom="@dimen/activity_vertical_margin"

tools:context=".MainActivity"

android:orientation="vertical">

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="Flashing Light at 20S"

android:id="@+id/button"

/>

2、实现按钮的点击监听

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");

}

mLightHander.postDelayed(mLightRunnable, 20000);

}

});

3、实现延时

private Handler mLightHander = new Handler();

private LightRunnable mLightRunnable = new LightRunnable();

class LightRunnable implements Runnable {

@Override

public void run() {

if (flashing) {

FlashingLight();

} else {

ClearLED();

}

}

}

mLightHander.postDelayed(mLightRunnable, 20000);

4、实现通知

private void FlashingLight()

{

NotificationManager nm = ( NotificationManager ) getSystemService( NOTIFICATION_SERVICE );

Notification notif = new Notification();

notif.flags = Notification.FLAG_SHOW_LIGHTS;

notif.ledARGB = 0xFF0000ff;

notif.ledOnMS = 100;

notif.ledOffMS = 100;

nm.notify(LED_NOTIFICATION_ID, notif);

}

5、取消通知

private void ClearLED()

{

NotificationManager nm = ( NotificationManager ) getSystemService( NOTIFICATION_SERVICE );

nm.cancel(LED_NOTIFICATION_ID);

}

6、实现点击延时

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");

}

mLightHander.postDelayed(mLightRunnable, 20000);

}

});

二、测试

用法:

1. 先在单板上"Setting"->"Display"->"Sleep"设为"15S"

2. 运行程序

3. 点击按钮后不再操作

4. 等屏幕再次变黑即可看到通知灯闪烁

注意:黑屏期间可以通过menu键或K1键返回程序界面

三、程序

package com.thisway.app_0002_lightdemo;

import android.os.Handler;

import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

import android.view.Menu;

import android.view.MenuItem;

import android.widget.Button;

import android.app.NotificationManager;

import android.app.Notification;

import android.view.View;

public class MainActivity extends AppCompatActivity {

private Button mLightButton = null;

boolean flashing = false;

final private int LED_NOTIFICATION_ID = 123;

private Handler mLightHander = new Handler();

private LightRunnable mLightRunnable = new LightRunnable();

class LightRunnable implements Runnable {

@Override

public void run() {

if (flashing) {

FlashingLight();

} else {

ClearLED();

}

}

}

private void FlashingLight()

{

NotificationManager nm = ( NotificationManager ) getSystemService( NOTIFICATION_SERVICE );

Notification notif = new Notification();

notif.flags = Notification.FLAG_SHOW_LIGHTS;

notif.ledARGB = 0xFF0000ff;

notif.ledOnMS = 100;

notif.ledOffMS = 100;

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");

}

mLightHander.postDelayed(mLightRunnable, 20000);

}

});

}

@Override

public boolean onCreateOptionsMenu(Menu menu) {

// Inflate the menu; this adds items to the action bar if it is present.

getMenuInflater().inflate(R.menu.menu_main, menu);

return true;

}

@Override

public boolean onOptionsItemSelected(MenuItem item) {

// Handle action bar item clicks here. The action bar will

// automatically handle clicks on the Home/Up button, so long

// as you specify a parent activity in AndroidManifest.xml.

int id = item.getItemId();

//noinspection SimplifiableIfStatement

if (id == R.id.action_settings) {

return true;

}

return super.onOptionsItemSelected(item);

}

}

xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"

android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"

android:paddingRight="@dimen/activity_horizontal_margin"

android:paddingTop="@dimen/activity_vertical_margin"

android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="Flashing Light at 20S"

android:id="@+id/button" />

标签:

来源: https://www.cnblogs.com/zzb-Dream-90Time/p/10199094.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/497771.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

简评黑客利器——中国菜刀

来源:http://edu2b.sinaapp.com/?p236&replytocom17 作者:XXX 我是一个玩黑很多年的人,入侵了大大小小的服务器无数,体验着入侵快感的同时,自己的技术和经验也不断提高,在渗透过程中收集了大大小小的…

2017,AI偏见为何如此受关注?

来源:亿欧概要:从荒谬到令人不寒而栗,算法偏见在社会中产生越来越大的影响,而且这一问题已经暴露多年。但直到2017年,人们对AI算法偏见的公众意识似乎才达到了一个临界点。佛罗里达州的一项犯罪预测算法错误地将黑人罪…

android aidl工具,【Android】AIDL介绍和实例讲解

前言为使应用程序之间能够彼此通信,Android提供了IPC (Inter Process Communication,进程间通信)的一种独特实现: AIDL (Android Interface Definition Language, Android接口定义语言)。网上看了几篇关于AIDL的文章,写…

MySQL新建用户,授权,删除用户,修改密码

来源:http://www.cnblogs.com/analyzer/articles/1045072.html 首先要声明一下:一般情况下,修改MySQL密码,授权,是需要有mysql里的root权限的。 注:本操作是在WIN命令提示符下,phpMyAdmin同样…

机器学习 TOP 10 必读论文 | 资源

来源:AI科技大本营编辑 | DonnaMedium上的机器学习深度爱好者必关注的账号Mybridge照例对11月发表的学术论文进行了排名,整理出了10篇必读论文,建议收藏深读。1. Alpha Zero:用强化学习算法对中国象棋和国际象棋进行自我修炼&…

爱奇艺首页底部导航按钮android,仿爱奇艺/腾讯视频ViewPager导航条实现

仿爱奇艺/腾讯视频ViewPager导航条实现,支持自定义导航条高度,宽度,颜色变化,字体大小变化。支持多种滚动模式,支持自定义每个TabView的样式。项目地址:https://github.com/KCrason/DynamicPagerIndicatord…

详解MYSQL数据库密码的加密方式及破解方法

来源:http://www.heibai.net/articles/hacker/mimapojie/2009/0908/841.html MYSQL数据库用户密码跟其它数据库用户密码一样,在应用系统代码中都是以明文出现的,在获取文件读取权限后即可直接从数据库连接文件中读取,例如asp代码中…

4-Docker命令之docker logs

1.docker logs介绍 docker logs命令是用来获取docker容器的日志 2.docker logs用法 docker logs [参数] CONTAINER [root@centos79 ~]# docker logs --helpUsage: docker logs [OPTIONS] CONTAINERFetch the logs of a containerAliases:docker container logs, docker lo…

亚马逊等智能音箱“偷听”用户 被指收集隐私

来源:中国评论通讯社概要:近日,美国消费者保护组织Consumer Watchdog出具的一份报告显示,来自亚马逊和谷歌的专利申请曝光了其智能音箱是如何“偷听”用户的。据英国《每日邮报》报道,近日,美国消费者保护…

android camera捕捉,通过android camera2 API捕捉4:3相机图片与16:9传感器阵列相机

我想从使用Camera2 API(Android 5.0版本中添加)的Android fron-facing相机以4:3的宽高比捕捉视频。它工作正常,除非相机有16:9传感器阵列(作为三星Galaxy S5上的前置摄像头)。在这种情况下,图像看上去就像是16:9图像被…

HTTP 相应头相关

If-Modified-Since & If-None-MatchIf-Modified-Since,和 Last-Modified 一样都是用于记录页面最后修改时间的 HTTP 头信息,只是 Last-Modified 是由服务器往客户端发送的 HTTP 头,而 If-Modified-Since 则是由客户端往服务器发送的头&am…

基于互联网云脑架构分析百度的现状与未来

前言:这是未来智能实验室基于互联网云脑架构,对世界科技企业的未来发展趋势进行分析的文章。因为百度排在BAT的首位,因此这个系列研究文章就从百度开始进行研究。作者:刘锋 计算机博士,互联网进化论作者互联网云脑&am…

华为鸿蒙操作界面,华为鸿蒙被“实锤”,操作界面曝光,为何被吐槽是换皮安卓?...

4月已经进入尾声,但鸿蒙系统的消息最近却变少了,记得此前发布Mate X2的时候,余承东表示要在4月份开始推送鸿蒙系统,Mate X2会成为首批升级机型。然而目前有不少用户吐槽称,依然还没有等到鸿蒙系统的推送,毕…

将文件内含有的特殊字符还原

如下文件内容: 这里有特殊字符:\n 、\t 、\u4e0a 、\/ 我要做的事,就是恢复其特殊字符的作用(而不是打印被转义后的效果) 直观的看,很容易:直接替换不就行了 line line.replaceAll("\\n&…

【深度】谭铁牛院士谈人工智能发展新动态

来源: Frontiers11月25日,模式识别与人工智能学科前沿研讨会在自动化所召开。会上,谭铁牛院士做“人工智能新动态”报告,回顾了近代以来历次科技革命及其广泛影响,并根据科学技术发展的客观规律解释了当前人工智能备受…

android keyboard用法,react-native-android-keyboard-adjust 最新使用方法 0.63

react-native 安卓动态调整 android:windowSoftInputMode"stateAlwaysHidden|adjustResize" 键盘模式最近尝试使用, 还能正常工作, 最新的react-native0.63依然可以正常使用, 方法如下:npm install --save react-native-android-keyboard-adjust1.2.0 装包复制 Andro…

屏蔽在线视频广告的方法

原理是改hosts的! 第一步:找到C:\WINDOWS\system32\drivers\etc里面的hosts文件,双击打开,选用记事本打开。 #优酷 127.0.0.1 atm.youku.com 127.0.0.1 Fvid.atm.youku.com 127.0.0.1 html.atm.youku.com 127.0.0.1 valb.atm.youku.com …

android批处理脚本,BAT批处理一键生成APK包脚本分享

BAT批处理一键生成APK包脚本分享将本bat放到cocos2dx目录下你的工程的project.android下(需修改变量)。ASmaker 用来将Resources文件夹下的lua文件批量加密 算法参考我之前的rc4算法实现。每次打包apk前 svn 最新的工程代码 和 cocos2dx引擎代码。echo offrem 工具路径set JAVA…

智能产品AI服务智商的权重研究|未来研究

作者:刘锋 计算机博士 互联网进化论作者前言:本文是未来智能实验室关于智能产品智商的最新研究文章,在提出人工智能的三种智商后,通过德尔菲法,对智能产品AI 服务智商的权重进行了确定,为2018年智能产品的…

前端 html5 css3 框架,UI,分享,CSS3,HTML5,前端框架

随着HTML5和CSS3以及网页设计布局的全面翻新创新改革。让很多网页设计者和界面设计师都知道一个道理。就是去掌握一套对应的工具包。这不仅仅是未来提高工作的效率,还能更好的去处理网页整体视觉效果。界面也可以做得更有交互性。优秀的工具包可以让您的工作事半功倍…