android传感器博客,Android实现接近传感器

本文实例为大家分享了Android实现接近传感器的具体代码,供大家参考,具体内容如下

1.接近传感器检测物体与听筒(手机)的距离,单位是厘米。

一些接近传感器只能返回远和近两个状态,如我的手机魅族E2只能识别到两个距离:0CM(近距离)和5CM(远距离)

因此,接近传感器将最大距离返回远状态,小于最大距离返回近状态。

接近传感器可用于接听电话时自动关闭LCD屏幕以节省电量。

一些芯片集成了接近传感器和光线传感器两者功能(魅族E2)。

2.代码如下:

MainActivity.class

package com.example.sz.proximitytest;

import android.hardware.Sensor;

import android.hardware.SensorEvent;

import android.hardware.SensorEventListener;

import android.hardware.SensorManager;

import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

import android.util.Log;

import android.view.Menu;

import android.view.View;

import android.widget.Button;

import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

private static final String TAG = "MainActivity";

private SensorManager mSensorManager=null;

private Sensor mSensor=null;

private TextView textView1=null;

private TextView textView2=null;

private TextView textView3=null;

private Button button1=null;

private Button button2=null;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

textView1 = (TextView) findViewById(R.id.textView1);

textView2 = (TextView) findViewById(R.id.textView2);

textView3 = (TextView) findViewById(R.id.textView3);

/*获取系统服务(SENSOR_SERVICE)返回一个SensorManager对象*/

mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);

/*通过SensorManager获取相应的(接近传感器)Sensor类型对象*/

mSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY);

/*注册相应的SensorService*/

button1 = (Button) findViewById(R.id.button1);

button1.setOnClickListener(new Button.OnClickListener() {

@Override

public void onClick(View arg0) {

mSensorManager.registerListener(mSensorEventListener, mSensor

, SensorManager.SENSOR_DELAY_NORMAL);

}

});

/* 销毁相应的SensorService

* 很关键的部分,注意,说明文档中提到,即使Activity不可见的时候,感应器依然会继续工作

* 所以一定要关闭触发器,否则将消耗用户大量电量*/

button2 = (Button) findViewById(R.id.button2);

button2.setOnClickListener(new Button.OnClickListener() {

@Override

public void onClick(View v) {

mSensorManager.unregisterListener(mSensorEventListener, mSensor);

}

});

}

/*声明一个SensorEventListener对象用于侦听Sensor事件,并重载onSensorChanged方法*/

private final SensorEventListener mSensorEventListener = new SensorEventListener() {

@Override

public void onSensorChanged(SensorEvent event) {

Log.e(TAG, "onSensorChanged: -----0------"+event.values[0]);

Log.e(TAG, "onSensorChanged: ------1-----"+event.values[1]);

Log.e(TAG, "onSensorChanged: --------2---"+event.values[2]);

if (event.sensor.getType() == Sensor.TYPE_PROXIMITY) {

/*接近传感器检测物体与听筒的距离,单位是厘米。*/

//这里要注意,正常都是取第一位的值,但我碰到一个取第二位的

float distance1 = event.values[0];

float distance2 = event.values[1];

float distance3 = event.values[2];

textView1.setText("[0]距离:"+String.valueOf(distance1) + "cm");

textView2.setText("[1]距离:"+String.valueOf(distance2) + "cm");

textView3.setText("[2]距离:"+String.valueOf(distance3) + "cm");

}

}

@Override

public void onAccuracyChanged(Sensor sensor, int accuracy) {

}

};

}

activity_main.xml

xmlns:app="http://schemas.android.com/apk/res-auto"

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

android:layout_width="match_parent"

android:layout_height="match_parent"

android:gravity="center"

android:orientation="vertical"

tools:context=".MainActivity">

android:id="@+id/textView1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Hello World!" />

android:id="@+id/button1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_marginTop="20dp"

android:text="打开" />

android:id="@+id/button2"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_marginTop="20dp"

android:text="关闭" />

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程圈。

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

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

相关文章

python 内存分析_python内存管理分析

本文较为详细的分析了python内存管理机制。分享给大家供大家参考。具体分析如下:内存管理,对于Python这样的动态语言,是至关重要的一部分,它在很大程度上甚至决定了Python的执行效率,因为在Python的运行中,…

牛客网--牛牛的闹钟

牛牛总是睡过头,所以他定了很多闹钟,只有在闹钟响的时候他才会醒过来并且决定起不起床。从他起床算起他需要X分钟到达教室,上课时间为当天的A时B分,请问他最晚可以什么时间起床 输入描述: 每个输入包含一个测试用例。 每个测试用…

由内而外:大脑是如何形成感官记忆的

大数据文摘出品来源:sciencedaily编译:张大笔茹通常,大脑会对我们感官收集的信息进行编码。为了感知环境并与之进行建设性的互动,这些感官信号需要在以往的经验和当前目标的背景下进行解释。最新一期的《科学》杂志上,…

android设置大小能用小数,Android中关于保留小数点位数的处理

保留两位小数方法一:{double c 3.154215;java.text.DecimalFormat myformatnew java.text.DecimalFormat("0.00");String str myformat.format(c);}方式二:{java.text.DecimalFormat df new java.text.DecimalFormat("#.00");df.…

oracle clob截取_Oracle数据库设计规范建议

Oracle-数据库设计规范建议来源于项目资料目的本规范的主要目的是希望规范数据库设计,尽量提前避免由于数据库设计不当而产生的麻烦;同时好的规范,在执行的时候可以培养出好的习惯,好的习惯是软件质量的很好的保证。数据库设计是指…

牛客网--19校招--俄罗斯方块

题目描述 小易有一个古老的游戏机,上面有着经典的游戏俄罗斯方块。因为它比较古老,所以规则和一般的俄罗斯方块不同。 荧幕上一共有 n 列,每次都会有一个 1 x 1 的方块随机落下,在同一列中,后落下的方块会叠在先前的方…

揭秘美国空军如何用AI技术提升“战斗力”

以AI技术为基础,美国空军正努力将自身转化为更强调协作性的组织。来源丨Forbes作者丨Kathleen Walch编译丨科技行者通过增加数据规模与相关素养提升,美国空军各部门及人员,将建立起更强的决策、战略、任务执行以及网络安全保障效率与能力。以…

android 查询wifi信息的类,Android 获取wifi信息

在androi中WIFI信息的获取可以通过系统提供的WIFI Service获取。WifiManager wifi_service (WifiManager)getSystemService(WIFI_SERVICE);WifiInfo wifiInfo wifi_service.getConnectionInfo();其中WifiInfo 中比较常用的信息有:/*info.getBSSID()&#xf…

bashsupport插件_如何用 bash-support 插件将 Vim 编辑器打造成编写 Bash 脚本的 IDE

IDE(集成开发环境)就是这样一个软件,它为了最大化程序员生产效率,提供了很多编程所需的设施和组件。 IDE 将所有开发工作集中到一个程序中,使得程序员可以编写、修改、编译、部署以及调试程序。在这篇文章中,我们会介绍如何通过使…

java--自动装箱,拆箱

自动装箱:把基本类型转换为包装类类型 自动拆箱:把包装类类型转换为基本类型 之前无法自动装箱时: public static void main(String[] args) { int x 100; Integer i1 new Integer(x); //将基本数据类型包装成对象,装箱 int…

数字孪生:如何撑起一个万亿市场的产业变革?

来源: 脑极体 今天我们介绍一个在产业界如火如荼,但大众还非常陌生的概念:数字孪生(Digital Twin)。在解释这一晦涩难懂的概念前,我首先想到了一个人,前苏联著名的昆虫学家、数学家和哲学家——…

二、python框架相关知识体系

Django框架 1、django框架、flask框架和Tornado框架的区别? django框架,内置组件多,自身功能强大,是一个大而全的框架,ORM、Admin、中间件、Form、ModelFrom、信号、缓存、csrf等flask框架,内置组件少&…

Android跟web哪个好,比系统自带的WebView更好用 | AgentWeb

名称AgentWeb语言Android平台GitHub作者Justson在混合化开发大行其道的今天,安卓开发经常会用到WebView,用于加载网页。系统自带的WebView性能和流畅度都一般,今天给大家推荐一款第三方WebView,性能比系统自带的要好,功…

牛客网--2019校招--瞌睡

题目描述 小易觉得高数课太无聊了,决定睡觉。不过他对课上的一些内容挺感兴趣,所以希望你在老师讲到有趣的部分的时候叫醒他一下。你知道了小易对一堂课每分钟知识点的感兴趣程度,并以分数量化,以及他在这堂课上每分钟是否会睡着…

preview窗口 unity_Unity3D在Preview中打印日志的方法

Preview窗口除了可以预览模型之外,我们还可以做别的操作。今天我们来写个小工具在Preview窗口中显示调试信息。可以看下面的图,同样是打印 health 和 power 的日志,在 Preview 中显示比在 Console 中显示舒服多了。左边是Console中显示,右边是…

神经科学如何影响人工智能?看DeepMind在NeurIPS2020最新《神经科学人工智能》报告,126页ppt...

来源:专知Jane Wang是DeepMind神经科学团队的一名研究科学家,研究元强化学习和受神经科学启发的人工智能代理。她的背景是物理、复杂系统、计算和认知神经科学。Kevin Miller是DeepMind神经科学团队的研究科学家,也是伦敦大学学院的博士后。他…

android 6.0 x86 64,安卓x86 6.0 iso下载|android x86 6.0 iso系统下载RC1 版_64位/32位IT猫扑网...

android x86 6.0 iso系统镜像最新发布,rc1版修复了之前的问题,android-x86 6.0-rc1(marshmallow-x86)这是android-x86 6.0的第一个候选版本(marshmallow-x86)稳定释放。小编已将32位和64位的安卓6.0 x86系统分网盘,欢迎下载使用。主要特点6.0…

牛客网--2019校招--丰收

题目描述 又到了丰收的季节,恰逢小易去牛牛的果园里游玩。 牛牛常说他对整个果园的每个地方都了如指掌,小易不太相信,所以他想考考牛牛。 在果园里有N堆苹果,每堆苹果的数量为ai,小易希望知道从左往右数第x个苹果是属…

flash写保护原理_一种基于flash写保护的防止flash被意外篡改的方法与流程

本发明属linux嵌入式芯片安全技术领域于领域,尤其是涉及一种nandflash写保护应用方法。背景技术:目前很多公司都纷纷尝试智能设备(sd,smartdevice)领域,sd设备功能越来越多,使用的flash(闪存)大多为spinor、spinand、emmc等等。sd…

科普长文揭秘生命为何会具有主观能动性

来源:混沌巡洋舰动物的免疫系统依赖于被称为巨噬细胞的白细胞吞噬并吞噬入侵者。这些细胞有着坚定的决心和热情: 在显微镜下,你可以看到一个像球状的巨噬细胞在玻璃片上追逐一个细菌,它的猎物试图通过红细胞的障碍物逃跑时,而在它…