android 获取手机中所有的传感器Sensor类使用方法

高仿QQ设置滑动按钮,漂亮简单
http://www.eoeandroid.com/thread-196576-1-1.html

原创:实战db4o数据库01
http://www.eoeandroid.com/thread-196073-1-1.html

Android应用调用浏览器和电话的URI
http://www.eoeandroid.com/thread-195752-1-1.html

 

代码很简单,自己看就能明白,只是为了练习一下Sensor类的使用方法。算是一个练习.

package mars.com;

 

import java.util.List;

 

import android.app.Activity;

 

import android.content.Context;

 

import android.hardware.Sensor;

 

import android.hardware.SensorManager;

 

import android.os.Bundle;

 

import android.view.View;

 

import android.view.View.OnClickListener;

 

import android.widget.Button;

 

import android.widget.TextView;

 

public class DemoSensorActivity extends Activity {

 

private Button button;

 

private TextView show;

 

private SensorManager sm;

 

private StringBuffer str;

 

private List<Sensor> allSensors;

 

private Sensor s;

 

@Override

 

public void onCreate(Bundle savedInstanceState) {

 

  super.onCreate(savedInstanceState);

 

  setContentView(R.layout.main);

 

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

 

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

 

  button.setOnClickListener(new ButtonListener());

 

  sm = (SensorManager) getSystemService(Context.SENSOR_SERVICE);

 

  allSensors = sm.getSensorList(Sensor.TYPE_ALL);// 获得传感器列表

 

}

 

class ButtonListener implements OnClickListener {

 

  public void onClick(View v) {

 

   str = new StringBuffer();

 

   str.append("该手机有" + allSensors.size() + "个传感器,分别是:\n");

 

   for (int i = 0; i < allSensors.size(); i++) {

 

    s = allSensors.get(i);

 

    str.append("设备名称:" + s.getName() + "\n");

 

    str.append("设备版本:" + s.getVersion() + "\n");

 

    str.append("通用类型号:" + s.getType() + "\n");

 

    str.append("设备商名称:" + s.getVendor() + "\n");

 

    str.append("传感器功耗:" + s.getPower() + "\n");

 

    str.append("传感器分辨率:" + s.getResolution() + "\n");

 

    str.append("传感器最大量程:" + s.getMaximumRange() + "\n");

 

    switch (s.getType()) {

 

    case Sensor.TYPE_ACCELEROMETER:

 

     str.append(i + "加速度传感器");

 

     break;

 

    case Sensor.TYPE_GYROSCOPE:

 

     str.append(i + "陀螺仪传感器");

 

     break;

 

    case Sensor.TYPE_LIGHT:

 

     str.append(i + "环境光线传感器");

 

     break;

 

    case Sensor.TYPE_MAGNETIC_FIELD:

 

     str.append(i + "电磁场传感器");

 

     break;

 

    case Sensor.TYPE_ORIENTATION:

 

     str.append(i + "方向传感器");

 

     break;

 

    case Sensor.TYPE_PRESSURE:

 

     str.append(i + "压力传感器");

 

     break;

 

    case Sensor.TYPE_PROXIMITY:

 

     str.append(i + "距离传感器");

 

     break;

 

    case Sensor.TYPE_TEMPERATURE:

 

     str.append(i + "温度传感器");

 

     break;

 

    default:

 

     str.append(i + "未知传感器");

 

     break;

 

    }

 

   }

 

   show.setText(str);

 

  }

 

}

 

}

 

布局文件

<?xml version="1.0" encoding="utf-8"?>

 

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

 

    android:layout_width="fill_parent"

 

    android:layout_height="fill_parent"

 

    android:orientation="vertical" >

 

    <Button

 

        android:id="@+id/button"

 

        android:layout_width="fill_parent"

 

        android:layout_height="wrap_content"

 

        android:text="获取传感器" />

 

    <ScrollView

 

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

 

        android:layout_width="fill_parent"

 

        android:layout_height="wrap_content"

 

        android:orientation="vertical" >

 

        <TextView

 

            android:id="@+id/show"

 

            android:layout_width="fill_parent"

 

            android:layout_height="wrap_content" />

 

    </ScrollView>

 

</LinearLayout>

 

 

 

你可能感兴趣的:(android)