Advertisement

android传感器学习之获取手机传感器

阅读量:

在做手机开发的时候,我们有时会使用到传感器,特别是在游戏开发中。下面我没来学习一下传感器的获取。

在这里我们需要一部真实的android手机,我使用的是华为的c8650。

获取手机中的传感器的步骤为:

  1. 获取SensorManager对象
  2. 执行SensorManager对象的getDefaultSensor()方法获取Sensor对象,这里getDefaultSensor()方法要传递一个参数,指定具体的传感器类型
  3. 获取Sensor对象中的各种属性

不说那么多了,先截图看看我的运行效果吧:

界面:

点击按钮后得到数据:

xml布局代码:

复制代码
 <?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/btnGetSensor"
    
       android:layout_width="fill_parent"
    
       android:layout_height="wrap_content"
    
       android:text="@string/btngetsensorstr"/>
    
  
    
 </LinearLayout>

activity代码:

复制代码
 package com.nine.sensordemo;

    
  
    
 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.util.Log;
    
 import android.view.View;
    
 import android.view.View.OnClickListener;
    
 import android.widget.Button;
    
  
    
 public class MainActivity extends Activity implements OnClickListener {
    
 	
    
 	private Button btnGetSensor;
    
 	
    
     @Override
    
     public void onCreate(Bundle savedInstanceState) {
    
     super.onCreate(savedInstanceState);
    
     setContentView(R.layout.main);
    
     initWedget();
    
     }
    
     
    
     private void initWedget() {
    
     	 btnGetSensor = (Button) findViewById(R.id.btnGetSensor);
    
     	 btnGetSensor.setOnClickListener(this);
    
     }
    
  
    
 	public void onClick(View v) {
    
 		SensorManager manager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
    
 		//得到手机上所有的传感器
    
 		List<Sensor> listSensor = manager.getSensorList(Sensor.TYPE_ALL);
    
 		int i = 1;
    
 		for (Sensor sensor : listSensor) {
    
 			Log.d("sensor " + i, sensor.getName());
    
 			i++;
    
 		}
    
 		//通过调用getDefaultSensor方法获取某一个类型的默认传感器
    
 		//Sensor s = manager.getDefaultSensor(Sensor.TYPE_LIGHT);
    
 	}
    
 }

这里主要是获取手机的所有传感器,下一步是获取传感器中的数据。

全部评论 (0)

还没有任何评论哟~