首页 > 系统 > Android > 正文

Android编程实现获取所有传感器数据的方法

2019-12-12 02:46:26
字体:
来源:转载
供稿:网友

本文实例讲述了Android编程实现获取所有传感器数据的方法。分享给大家供大家参考,具体如下:

main.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  android:orientation="vertical"  android:layout_width="fill_parent"  android:layout_height="fill_parent"  ><TextView  android:layout_width="fill_parent"  android:layout_height="wrap_content"  android:text="@string/hello"  /><TextView  android:layout_width="fill_parent"  android:layout_height="wrap_content"  android:text="加速度"  android:id="@+id/edt1"  /><TextView  android:layout_width="fill_parent"  android:layout_height="wrap_content"  android:text="磁场"  android:id="@+id/edt2"  /><TextView  android:layout_width="fill_parent"  android:layout_height="wrap_content"  android:text="定位"  android:id="@+id/edt3"  /><TextView  android:layout_width="fill_parent"  android:layout_height="wrap_content"  android:text="陀螺仪"  android:id="@+id/edt4"  /><TextView  android:layout_width="fill_parent"  android:layout_height="wrap_content"  android:text="光线"  android:id="@+id/edt5"  /><TextView  android:layout_width="fill_parent"  android:layout_height="wrap_content"  android:text="压力"  android:id="@+id/edt6"  /><TextView  android:layout_width="fill_parent"  android:layout_height="wrap_content"  android:text="温度"  android:id="@+id/edt7"  />    <TextView  android:layout_width="fill_parent"  android:layout_height="wrap_content"  android:text="距离"  android:id="@+id/edt8"  /><TextView  android:layout_width="fill_parent"  android:layout_height="wrap_content"  android:text="重力"  android:id="@+id/edt9"  /><TextView  android:layout_width="fill_parent"  android:layout_height="wrap_content"  android:text="线性加速度"  android:id="@+id/edt10"  /><TextView  android:layout_width="fill_parent"  android:layout_height="wrap_content"  android:text="旋转矢量"  android:id="@+id/edt11"  /><TextView  android:layout_width="fill_parent"  android:layout_height="wrap_content"  android:text="defalut"  android:id="@+id/edt12"  /></LinearLayout>

main.java

/* * * IBMEyes.java * sample code for IBM Developerworks Article * Author: W. Frank Ableson * fableson@msiservices.com * */package com.msi.ibm.eyes;import android.app.Activity;import android.os.Bundle;import android.util.Log;import android.widget.TextView;import android.hardware.Sensor;import android.hardware.SensorManager;import android.hardware.SensorListener;public class IBMEyes extends Activity implements SensorListener {  final String tag = "IBMEyes";  SensorManager sm = null;  TextView View1 = null;  TextView View2 = null;  TextView View3 = null;  TextView View4 = null;  TextView View5 = null;  TextView View6 = null;  TextView View7 = null;  TextView View8 = null;  TextView View9 = null;  TextView View10 = null;  TextView View11 = null;  TextView View12 = null;  /** Called when the activity is first created. */  @Override  public void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    sm = (SensorManager) getSystemService(SENSOR_SERVICE);    setContentView(R.layout.main);    View1 = (TextView) findViewById(R.id.edt1);    View2 = (TextView) findViewById(R.id.edt2);    View3 = (TextView) findViewById(R.id.edt3);    View4 = (TextView) findViewById(R.id.edt4);    View5 = (TextView) findViewById(R.id.edt5);    View6 = (TextView) findViewById(R.id.edt6);    View7 = (TextView) findViewById(R.id.edt7);    View8 = (TextView) findViewById(R.id.edt8);    View9 = (TextView) findViewById(R.id.edt9);    View10 = (TextView) findViewById(R.id.edt10);    View11 = (TextView) findViewById(R.id.edt11);    View12 = (TextView) findViewById(R.id.edt12);  }  public void onSensorChanged(int sensor, float[] values) {    synchronized (this) {      String str = "X:" + values[0] + ",Y:" + values[1] + ",Z:" + values[2];      switch (sensor){      case Sensor.TYPE_ACCELEROMETER:        View1.setText("加速度:" + str);        break;      case Sensor.TYPE_MAGNETIC_FIELD:        View2.setText("磁场:" + str);        break;      case Sensor.TYPE_ORIENTATION:        View3.setText("定位:" + str);        break;      case Sensor.TYPE_GYROSCOPE:        View4.setText("陀螺仪:" + str);        break;      case Sensor.TYPE_LIGHT:        View5.setText("光线:" + str);        break;      case Sensor.TYPE_PRESSURE:        View6.setText("压力:" + str);        break;      case Sensor.TYPE_TEMPERATURE:        View7.setText("温度:" + str);        break;      case Sensor.TYPE_PROXIMITY:        View8.setText("距离:" + str);        break;      case Sensor.TYPE_GRAVITY:        View9.setText("重力:" + str);        break;      case Sensor.TYPE_LINEAR_ACCELERATION:        View10.setText("线性加速度:" + str);        break;      case Sensor.TYPE_ROTATION_VECTOR:        View11.setText("旋转矢量:" + str);        break;      default:        View12.setText("NORMAL:" + str);        break;      }    }  }  public void onAccuracyChanged(int sensor, int accuracy) {    Log.d(tag,"onAccuracyChanged: " + sensor + ", accuracy: " + accuracy);  }  @Override  protected void onResume() {    super.onResume();    sm.registerListener(this,        Sensor.TYPE_ACCELEROMETER |        Sensor.TYPE_MAGNETIC_FIELD |        Sensor.TYPE_ORIENTATION |        Sensor.TYPE_GYROSCOPE |        Sensor.TYPE_LIGHT |        Sensor.TYPE_PRESSURE |        Sensor.TYPE_TEMPERATURE |        Sensor.TYPE_PROXIMITY |        Sensor.TYPE_GRAVITY |        Sensor.TYPE_LINEAR_ACCELERATION |        Sensor.TYPE_ROTATION_VECTOR,        SensorManager.SENSOR_DELAY_NORMAL);  }  @Override  protected void onStop() {    sm.unregisterListener(this);    super.onStop();  }}

更多关于Android相关内容感兴趣的读者可查看本站专题:《Android基本组件用法总结》、《Android视图View技巧总结》、《Android布局layout技巧总结》、《Android资源操作技巧汇总》、《Android文件操作技巧汇总》、《Android开发入门与进阶教程》、《Android编程之activity操作技巧总结》及《Android控件用法总结

希望本文所述对大家Android程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表