Android光线传感器使用方法详解

本文实例为大家分享了Android光线传感器使用的具体代码,供大家参考,具体内容如下

一、首先是布局页面activity_light_sensor.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    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:orientation="vertical"
    tools:context=".LightSensorActivity">

    <TextView
        android:id="@+id/textView"
        android:layout_width="match_parent"
        android:layout_height="60dp"
        android:gravity="center"
        android:text="光线传感器"
        android:textColor="@color/black"
        android:textSize="20sp" />

    <EditText
        android:id="@+id/editText"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />
</LinearLayout>

二、在对应的Activity中获取光线传感器的值LightSensorActivity,具体注释已经在代码中给出

public class LightSensorActivity extends AppCompatActivity implements SensorEventListener {
    private EditText editText;
    //传感器管理器对象
    private SensorManager sensorManager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_light_sensor);
        editText = findViewById(R.id.editText);
        sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);

    }

    @Override
    protected void onResume() {
        super.onResume();
        //第一个参数:SensorEventListener对象用this来指定就可以了
        // 第二个参数:传感器对象 光线传感器类型的常量:TYPE_LIGHT
        // 第三个参数:传感器数据的频率 这里采用适合游戏的频率
        sensorManager.registerListener(this, sensorManager.getDefaultSensor(Sensor.TYPE_LIGHT), SensorManager.SENSOR_DELAY_GAME);
    }

    @Override
    protected void onPause() {
        super.onPause();
        sensorManager.unregisterListener(this);
    }

    //当传感器的值,发生变化时,回调的方法
    @Override
    public void onSensorChanged(SensorEvent event) {
        //获取传感器的值
        float[] values= event.values;
        //获取传感器类型
        int sensorType = event.sensor.getType();
        StringBuilder stringBuilder = null;
        if (sensorType==Sensor.TYPE_LIGHT){
            stringBuilder = new StringBuilder();
            stringBuilder.append("光的强度值:");
            //添加获取的传感器的值
            stringBuilder.append(values[0]);
            editText.setText(stringBuilder.toString());
        }
    }

    //当传感器的精度,发生变化时,回调的方法
    @Override
    public void onAccuracyChanged(Sensor sensor, int accuracy) {

    }
}

效果如图所示:

以上是光线传感器的简单使用。

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

(0)

相关推荐

  • Android传感器使用实例介绍

    目录 传感器 磁场传感器 加速度传感器 方向传感器 传感器 1.mainActivity 实现SensorEventListerner 方法 2. 定义:SensorManage 对象 3. 在重写的onResum 方法中 为重力和光线传感器注册监听器 sensorManage.registerListener() 4. 在实现的onSensorChanged 方法中 获取传感器的类型 5. 借助硬件 从软件接口上使用光线传感器,根据外界屏幕亮度 修改屏幕亮度 package com.mingr

  • Android传感器数据获取的方法

    本文实例为大家分享了Android传感器数据获取的具体代码,供大家参考,具体内容如下 接着上篇wifi列表获取,我们这篇接着说传感器.还是看代码 我们先自己定义一个传感器的工具类(因为我这边只是获取了部分的传感器,需要获取额外的传感器自己配置一下就行了,工具类通过重载提供了不同的构造方法): public class SensorUtils implements SensorEventListener { private SensorManager manager; /** * @param c

  • Android采集传感器数据并显示的方法

    本文实例为大家分享了Android采集传感器数据并显示的具体代码,供大家参考,具体内容如下 需要的知识 Android 项目主配置文件 AndroidManifest.xml Android Activity 概念 Android Sensor 接口 Android UI 布局管理器.文本框组件.编辑框组件 代码及解释 1.布局文件,用于控制UI界面显示,这里使用了表格布局管理器和四个行,每一行之中有四列,其中外面的两列是为了让中间两列居中,而中间两列分别是一个显示数据来源的TextView文本

  • Android获取设备传感器的方法

    本文实例为大家分享了Android获取设备传感器的具体代码,供大家参考,具体内容如下 结果示例: xml代码: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"     xmlns:tools="http://schemas.android.c

  • Android传感器的简单使用方法

    本文实例为大家分享了Android传感器简单使用的具体代码,供大家参考,具体内容如下 1. SensorManager类 SensorManager类用来管理各个传感器:通过SensorManager创建实例,并用getSystemService(SENSOR_SERVICE)获取传感器服务.使用其getSensorList()方法,可以获取所有可用的传感器该方法返回一个List<Sensor>,即Sensor对象的列表.注意:当不使用或Activity暂停的时候,要关闭感应器:屏幕关闭时,系

  • android实现手机传感器调用

    android传感器使用的demo,包括光线传感器,加速度传感器,距离传感器和方向传感器. demo:下载地址 源码: package com.bobo.study.study_5_1; import android.app.Activity; import android.content.Context; import android.hardware.Sensor; import android.hardware.SensorEvent; import android.hardware.Se

  • Android 如何获取传感器的数据方法详解

    目录 1 传感器简介 2 传感器的使用 2.1 获取传感器服务 2.2 获取待监听的传感器 2.3 注册传感器的监听器 2.4 注销传感器的监听器 3 示例代码 1 传感器简介 传感器 Sensor 是一种检测装置,能感受到被测量的信息,并能将感受到的信息,按一定规律变换成为电信号或其他所需形式的信息输出,以满足信息的传输.处理.存储.显示.记录和控制等要求. Android 提供了对设备传感器的支持,只要 Android 设备的硬件提供了这些传感器,Android 应用可以通过传感器来获取设备

  • Android实现传感器功能

    Android传感器概述:动作传感器.环境传感器.位置传感器等,如方向传感器(电子罗盘).重力传感器(横纵切换).Android SDK支持的传感器并不是每一部Android手机均支持. 动作传感器:在三个轴上测量加速度和旋转角度,包括加速度.重力.陀螺仪: 环境传感器:测量环境参数,包括湿度.光线.温度: 位置传感器:测量设备物理位置,包括方向.磁力. ASF(Android传感器框架)功能:确定当前Android设备内置传感器:确定传感器技术指标,如传感器测量的最大范围.制造商等:获取传感器

  • Android实现接近传感器

    本文实例为大家分享了Android实现接近传感器的具体代码,供大家参考,具体内容如下 1.接近传感器检测物体与听筒(手机)的距离,单位是厘米. 一些接近传感器只能返回远和近两个状态,如我的手机魅族E2只能识别到两个距离:0CM(近距离)和5CM(远距离) 因此,接近传感器将最大距离返回远状态,小于最大距离返回近状态. 接近传感器可用于接听电话时自动关闭LCD屏幕以节省电量. 一些芯片集成了接近传感器和光线传感器两者功能(魅族E2). 2.代码如下: MainActivity.class pack

  • Android光线传感器使用方法详解

    本文实例为大家分享了Android光线传感器使用的具体代码,供大家参考,具体内容如下 一.首先是布局页面activity_light_sensor.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"     xmlns:app="http:/

  • Android HandlerThread使用方法详解

    Android HandlerThread使用方法详解 HandlerThread 继承自Thread,内部封装了Looper. 首先Handler和HandlerThread的主要区别是:Handler与Activity在同一个线程中,HandlerThread与Activity不在同一个线程,而是别外新的线程中(Handler中不能做耗时的操作). 用法: import android.app.Activity; import android.os.Bundle; import androi

  • Android canvas drawBitmap方法详解及实例

     Android canvas drawBitmap方法详解及实例 之前自己在自定义view,用到canvas.drawBitmap(Bitmap, SrcRect, DesRect, Paint)的时候,对其中的第2和3个参数的含义含糊不清.看源码函数也没理解,然后看了一些其他的博客加上自己的理解,整理如下.首先,我们看一张图片,今天就要绘制这张图片. 然后将图片用红色的线条分成4个部分,如下: 我们自定义一个View,代码如下: public class PoterDuffLoadingVi

  • Android View.onMeasure方法详解及实例

    Android View.onMeasure方法详解及实例 View在屏幕上显示出来要先经过measure(计算)和layout(布局). 1.什么时候调用onMeasure方法? 当控件的父元素正要放置该控件时调用.父元素会问子控件一个问题,"你想要用多大地方啊?",然后传入两个参数--widthMeasureSpec和heightMeasureSpec. 这两个参数指明控件可获得的空间以及关于这个空间描述的元数据. 更好的方法是你传递View的高度和宽度到setMeasuredDi

  • Android Notification 使用方法详解

    Android Notification 使用方法详解 用TaskStackBuilder来获取PendingIntent处理点击跳转到别的Activity,首先是用一般的PendingIntent来进行跳转. mBuilder = new NotificationCompat.Builder(this).setContent(view) .setSmallIcon(R.drawable.icon).setTicker("新资讯") .setWhen(System.currentTim

  • 基于Android RxCache使用方法详解

    前言 我为什么使用这个库? 事实上Android开发中缓存功能的实现选择有很多种,File缓存,SP缓存,或者数据库缓存,当然还有一些简单的库/工具类,比如github上的这个: [ASimpleCache]:a simple cache for android and java 但是都不是很好用(虽然可能学习成本比较低,因为它使用起来相对简单),我可能需要很多的静态常量来作为key存储缓存数据value,并设置缓存的有效期,这可能需要很多Java代码去实现,并且过程繁琐. 如果您使用的网络请求

  • Android IdleHandler使用方法详解

    正文 在Android中,Handler是一个使用的非常频繁的东西,输入事件机制和系统状态,都通过Handler来进行流转,而在Handler中,有一个很少被人提起但是却很有用的东西,那就是IdleHandler,它的源码如下. /** * Callback interface for discovering when a thread is going to block * waiting for more messages. */ public static interface IdleHa

  • Android Notification使用方法详解

    Android  Notification使用详解 Notification 核心代码(链式调用):适用于Android 4.0以上(不兼容低版本) Notification noti = new Notification.Builder(this) .setContentTitle("标题名称") .setContentText("标题里的内容") .setSmallIcon(R.drawable.new_mail) .setLargeIcon(BitmapFac

  • Android  Notification使用方法详解

    Android  Notification使用详解 Notification 核心代码(链式调用):适用于Android 4.0以上(不兼容低版本) Notification noti = new Notification.Builder(this) .setContentTitle("标题名称") .setContentText("标题里的内容") .setSmallIcon(R.drawable.new_mail) .setLargeIcon(BitmapFac

  • Android RecyclerView使用方法详解

    本文为大家分享了Android RecyclerView使用方法,供大家参考,具体内容如下 1.RecyclerView 是在Android support - v7 里面提供的 新的列表组件,用来替代传统的ListView. . 要使用RecyclerView 需要给我工程添加 support:recycle-v7 的支持: app 右键 - Open Module Settings - Dependencies(依赖项) - 点 + 号 - 添加一个库 upport:recycle-v7 

随机推荐