距离传感器应用之一通话时手机屏的亮灭

  • 使用上一篇中的BaseActivity
  • 定义电源管理对象
// 屏幕开关private PowerManager localPowerManager = null;// 电源管理对象private PowerManager.WakeLock localWakeLock = null;// 电源锁
  • 初始化对象和数据
setContentView(R.layout.activity_main);//初始化距离传感器initSensor(this,Sensor.TYPE_PROXIMITY);setOnChangeListener(this);localPowerManager = (PowerManager) getSystemService(Context.POWER_SERVICE);// 获取PowerManager.WakeLock对象,后面的参数|表示同时传入两个值,最后的是LogCat里用的TaglocalWakeLock = this.localPowerManager.newWakeLock(32, "MyPower");// 第一个参数为电源锁级别,第二个是日志tag
  • 主体:处理数据反馈
    float[] its = event.values;//Log.d(TAG,"its array:"+its+"sensor type :"+event.sensor.getType()+" proximity type:"+Sensor.TYPE_PROXIMITY);if (its != null && event.sensor.getType() == Sensor.TYPE_PROXIMITY) {//            System.out.println("its[0]:" + its[0]);
//            tv.setText(its[0]+"");//经过测试,当手贴近距离感应器的时候its[0]返回值为0.0,当手离开时返回1.0if (its[0] == 0.0) {// 贴近手机//                System.out.println("hands up");Log.d(TAG,"hands up in calling activity");if (localWakeLock.isHeld()) {return;} else{localWakeLock.acquire();// 申请设备电源锁}} else {// 远离手机System.out.println("hands moved");Log.d(TAG,"hands moved in calling activity");if (localWakeLock.isHeld()) {return;} else{localWakeLock.setReferenceCounted(false);localWakeLock.release(); // 释放设备电源锁}}}
  • 重点:销毁activity时需要释放电源锁,如果不释放,finish这个acitivity后仍然会有自动锁屏的效果,即使取消传感器监听,依然有锁频效果,没想明白
@Overridepublic void onDestroy(){super.onDestroy();Log.d(TAG,"on destroy");if(localWakeLock != null){localWakeLock.release();//释放电源锁,如果不释放,finish这个acitivity后仍然会有自动锁屏的效果,不信可以试一试}}

Demo下载:gingerbread
相关链接:我的Android开发相关文章

Android传感器(四):距离传感器相关推荐

  1. android 距离传感器 api,Android传感器API之:近距离感应Proximity功能源码

    并不是所有Android手机上都保留有距离感应器.基于这个感应器可以有一些很不错的小应用,比如近距离感应锁屏.解锁-- 分享Rexsee的距离感应功能源码,回头可以自个儿做..更多的传感器API我这几 ...

  2. android 传感器 balance filter,Android 传感器 API.doc

    Android 传感器 API 1.1 序言 ? ?[Android蛋蛋网]在这一章我们主要针对Android的传感器(Sensor)进行说明.如果说Java的程序和硬件有些远的感觉,那么可以说传感器 ...

  3. 《Android传感器开发与智能设备案例实战》——导读

    本节书摘来自异步社区<Android传感器开发与智能设备案例实战>一书中的目录,作者 朱元波,更多章节内容可以访问云栖社区"异步社区"公众号查看 目 录 前 言 第1章 ...

  4. Android传感器-开发指南

    大部分Android平台的设备都带有多个传感器,使你能监视其方位和运动状态的变化.很多设备还有其它类型的传感器,让你能感知周围的环境条件,比如温度.压力.湿度和光线.你可以利用Android的传感器框 ...

  5. 关于Android 传感器坐标与读数的进一步讨论

    关于Android 传感器坐标与读数的进一步讨论 之前一些相关的讨论见: Android Sensors (3) 传感器坐标系统 Android Sensors (5) 运动传感器 Motion Se ...

  6. Android传感器、语音识别、定位系统、Google Map API、快捷方式、widget编程总结及示例

    Android特色开发 第一部分 传感器    传感器是一种物理装置或生物器官,能够探测.感受外界的信号.物理条件(如:光.热.湿度)或化学组成(如:烟雾),并将探知的信息传递给其他设备或器官.    ...

  7. Android传感器、语音识别、定位系统、Google Map API、快捷方式、widget编程总结及示例...

    Android特色开发 第一部分 传感器 传感器是一种物理装置或生物器官,能够探测.感受外界的信号.物理条件(如:光.热.湿度)或化学组成(如:烟雾),并将探知的信息传递给其他设备或器官. Andro ...

  8. android 传感器应用

    本章讲述Android开发中,传感器应用相关的知识点. 1.功能需求 做一个基于传感器的水平尺应用. 2.软件实现 图1 图2 如截图所示:在手机上运行时,通过翻转手机,可以测试水平尺和罗盘的功能. ...

  9. Android传感器——传感器监听器及摇一摇案例

    接上<Android传感器--获取本机传感器> https://blog.csdn.net/nishigesb123/article/details/90143498 部分参考:https ...

  10. Android传感器Motion Sensor开发实验

    目录 一.实验目的 二.实验要求 三.实验原理 (一)第一次实验 1.JDK(Java Development Kit) 2.Android SDK 3.AVD(Android Virtual Dev ...

最新文章

  1. Linux Top 命令解析 比较详细
  2. SQL面试题: 数据库中有A B C三列,用SQL语句实现:当A列大于B列时选择A列否则选择B列 ,当B列大于C列时选择B列否则选择C列 ,...
  3. html 二叉树模式,重建二叉树.html
  4. python 的日志logging模块学习
  5. shell-sed命令详解(转)
  6. WIN32开发:如何获取父进程的ID
  7. JS:两个json数组合并、去重,以及删除某一项元素
  8. (Redis设计与实现-6) 频道的订阅与退订
  9. 计算机组成与架构综述学习报告
  10. linux下kafka与zookeeper集群部署
  11. nutshell_Nutshell中的Java 8语言功能-第2部分
  12. word一键排版工具_超赞的Word标尺小工具,轻松帮你搞定各种「对不齐」排版问题...
  13. (转)Cesium教程系列汇总
  14. 论文笔记_S2D.29_2017_CVPR_多尺度连续CRFs作为序列深度网络的单目深度估计
  15. Unity3D不同脚本函数或参数之间调用
  16. 机电传动控制第五周作业
  17. 最大似然估计和最小二乘法 含代码
  18. 【Python基础】from pygame.base import * # pylint: disable=wildcard-import; lgtm[py/polluting-import] Mod
  19. linux redis-trib.rb,linux - redis-trib.rb 命令详解
  20. 两个同级路由如何相互访问

热门文章

  1. word2010取消页眉中的横线
  2. Audacity分析清音浊音爆破音的时域及频域特性
  3. 智力游戏(搬山游戏)
  4. shellcode免杀框架内附SysWhispers2_x86直接系统调用
  5. 如何构建高质量的 QA 问答知识库
  6. 百度云搜索引擎森林战士_002 找到你要的资料——百度网盘使用指南
  7. mysql数据导入导出 CSV格式_导出mysql的数据为csv格式的文件
  8. Unit Testing with Sinon.JS
  9. 如何记账,筛选指定收支类别
  10. Python批量修改图片名称