我的编程空间,编程开发者的网络收藏夹
学习永远不晚

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

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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

本文实例为大家分享了Android采集传感器数据并显示的具体代码,供大家参考,具体内容如下

需要的知识

  • Android 项目主配置文件 AndroidManifest.xml
  • Android Activity 概念
  • Android Sensor 接口
  • Android UI 布局管理器、文本框组件、编辑框组件

代码及解释

1.布局文件,用于控制UI界面显示,这里使用了表格布局管理器和四个行,每一行之中有四列,其中外面的两列是为了让中间两列居中,而中间两列分别是一个显示数据来源的TextView文本框组件和一个显示数据值的编辑框组件。


<!-- activity_main.xml -->
<?xml version="1.0" encoding="utf-8"?>
<!-- 表格布局管理器TableLayout -->
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="16dp"
    android:paddingLeft="16dp"
    android:paddingRight="16dp"
    android:paddingTop="16dp"
    android:stretchColumns="0,3"
    tools:context=".MainActivity" >

    <!--三行,传感器数据显示-->
    <TableRow android:paddingTop="10dp">
        <!--文本框组件-->
        <TextView />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="x轴加速度:"
            android:textSize="18sp"
            android:gravity="center_horizontal"/>
     <!--编辑框组件-->
        <EditText
            android:id="@+id/et1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:hint="000"/>
        <TextView />
    </TableRow>

    <TableRow >
        <TextView />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="y轴加速度:"
            android:textSize="18sp"
            android:gravity="center_horizontal"/>

        <EditText
            android:id="@+id/et2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:hint="000"/>
        <TextView />
    </TableRow>

    <TableRow >
        <TextView />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="z轴加速度:"
            android:textSize="18sp"
            android:gravity="center_horizontal"/>

        <EditText
            android:id="@+id/et3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:hint="000"/>
        <TextView />
    </TableRow>
</TableLayout>

2.程序文件,用于采集传感器数据并控制其显示

关于 Android Activity 有很多资料,这里就说其是一个 Android 程序的一个页面及其对应的执行内容;Activity 的生命流程,onCreate( ),onStart( ),onResume( )…

采集传感器数据有三步,首先获取一个传感器管理器对象,然后注册监听器,最后判断传感器值改变时是否需要的传感器类型,然后做出刷新或其它反应;


//    MainActivity.java
package com.example.myapplication;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Context;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.widget.EditText;

public class MainActivity extends AppCompatActivity implements SensorEventListener {  // 实现Sensor Event Listener接口
    private EditText textAcceX,textAcceY,textAcceZ;   //编辑框组件
    private SensorManager sensorManager;  //传感器管理器组件
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        textAcceX = findViewById(R.id.et1);
        textAcceY = findViewById(R.id.et2);
        textAcceZ = findViewById(R.id.et3);
        sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);    // 获取传感器管理器 
    }

    @Override
    protected void onResume() {
        super.onResume();
        //设置传感器类型及采样率
        sensorManager.registerListener(this,
                sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),SensorManager.SENSOR_DELAY_UI);
    }

    @Override
    protected void onPause() {
        super.onPause();
        sensorManager.unregisterListener(this);  // 暂停采集
    }

    @Override
    public void onSensorChanged(SensorEvent event) {   // 重写SensorEventListener接口的方法
        float [] values = event.values;
        int sensorType = event.sensor.getType();
        StringBuilder stringBuilderX = null,stringBuilderY = null,stringBuilderZ = null;
        if(sensorType == Sensor.TYPE_ACCELEROMETER ){   //  判断是否所需传感器
            stringBuilderX = new StringBuilder();
            stringBuilderY = new StringBuilder();
            stringBuilderZ = new StringBuilder();
            stringBuilderX.append(values[0]);
            stringBuilderY.append(values[1]);
            stringBuilderZ.append(values[2]);
            textAcceX.setText(stringBuilderX.toString());   // 编辑框内显示
            textAcceY.setText(stringBuilderY.toString());
            textAcceZ.setText(stringBuilderZ.toString());
        }
    }

    @Override
    public void onAccuracyChanged(Sensor sensor, int accuracy) {   //  重写SensorEventListener接口的方法

    }
}

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

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

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

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

android获取数据并显示的方法是什么

在Android中,获取数据并显示的方法有多种。以下是一些常用的方法:1. 使用网络请求库:可以使用第三方网络请求库(如Retrofit、Volley等)发送HTTP请求来获取数据。获取到数据后,可以使用适配器(如RecyclerView.
2023-09-21

python串口数据采集并保存的方法是什么

在Python中,可以使用pyserial库来进行串口数据采集和保存。以下是一个示例代码,演示了如何使用pyserial库来读取串口数据并将其保存到文件中:import serial# 打开串口ser = serial.Serial('
2023-10-27

Android编程实现EditText字数监听并显示的方法

本文实例讲述了Android编程实现EditText字数监听并显示的方法。分享给大家供大家参考,具体如下: 在开发应用的时候,经常会限制用户输入的字数,比如发表评论或者其它什么的,下面来个简单的demoEditText et_content
2022-06-06

详解火车头采集器免登录采集数据发布到DEDECMS织梦的方法

将dede/config.php中的下面代码://检验用户登录状态 $cuserLogin = new userLogin();if($cuserLogin->getUserID()==-1){header("location:loghtt
2022-06-12

php查询数据库并显示的方法是什么

在PHP中,可以使用以下步骤来查询数据库并显示结果:1. 连接数据库:使用`mysqli_connect()`函数或者`PDO`来连接数据库服务器。例如:```php$servername = "localhost";$username =
2023-09-04

Android ListView数据绑定显示的三种解决方法

首先,创建一个用于显示一个item的layout,名为item.xml 代码如下:2022-06-06

Android编程使用ListView实现数据列表显示的方法

本文实例讲述了Android编程使用ListView实现数据列表显示的方法。分享给大家供大家参考,具体如下: 要将数据库中的数据列表显示在屏幕上,我们要使用ListView这个控件,当用户从数据库中取出数据时,要将数据绑定到显示控件上,如何
2022-06-06

Android操作SQLite数据库(增、删、改、查、分页等)及ListView显示数据的方法详解

本文实例讲述了Android操作SQLite数据库(增、删、改、查、分页等)及ListView显示数据的方法。分享给大家供大家参考,具体如下: 由于刚接触android开发,故此想把学到的基础知识记录一下,以备查询,故此写的比较啰嗦: 步骤
2022-06-06

Android开发中调用系统相册上传图片到服务器OPPO等部分手机上出现短暂的显示桌面问题的解决方法

要原因是主体样式设置的问题:这里把appTheme设置一个style即可: @color/white