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




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

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

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

  1. 获取SensorManager对象
  2. 执行SensorManager对象的getDefaultSensor()方法获取Sensor对象,这里getDefaultSensor()方法要传递一个参数,指定具体的传感器类型
  3. 获取Sensor对象中的各种属性
不说那么多了,先截图看看我的运行效果吧:

界面:


点击按钮后得到数据:


xml布局代码:

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:layout_width="fill_parent"  
  4.     android:layout_height="fill_parent"  
  5.     android:orientation="vertical" >  
  6.   
  7.   <Button  
  8.       android:id="@+id/btnGetSensor"  
  9.       android:layout_width="fill_parent"  
  10.       android:layout_height="wrap_content"  
  11.       android:text="@string/btngetsensorstr"/>  
  12.   
  13. </LinearLayout>  
<?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代码:

  1. package com.nine.sensordemo;  
  2.   
  3. import java.util.List;  
  4.   
  5. import android.app.Activity;  
  6. import android.content.Context;  
  7. import android.hardware.Sensor;  
  8. import android.hardware.SensorManager;  
  9. import android.os.Bundle;  
  10. import android.util.Log;  
  11. import android.view.View;  
  12. import android.view.View.OnClickListener;  
  13. import android.widget.Button;  
  14.   
  15. public class MainActivity extends Activity implements OnClickListener {  
  16.       
  17.     private Button btnGetSensor;  
  18.       
  19.     @Override  
  20.     public void onCreate(Bundle savedInstanceState) {  
  21.         super.onCreate(savedInstanceState);  
  22.         setContentView(R.layout.main);  
  23.         initWedget();  
  24.     }  
  25.       
  26.     private void initWedget() {  
  27.          btnGetSensor = (Button) findViewById(R.id.btnGetSensor);  
  28.          btnGetSensor.setOnClickListener(this);  
  29.     }  
  30.   
  31.     public void onClick(View v) {  
  32.         SensorManager manager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);  
  33.         //得到手机上所有的传感器  
  34.         List<Sensor> listSensor = manager.getSensorList(Sensor.TYPE_ALL);  
  35.         int i = 1;  
  36.         for (Sensor sensor : listSensor) {  
  37.             Log.d("sensor " + i, sensor.getName());  
  38.             i++;  
  39.         }  
  40.         //通过调用getDefaultSensor方法获取某一个类型的默认传感器  
  41.         //Sensor s = manager.getDefaultSensor(Sensor.TYPE_LIGHT);  
  42.     }  
  43. }  
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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值