`
dowhathowtodo
  • 浏览: 778346 次
文章分类
社区版块
存档分类
最新评论

Android Sensor 入门

 
阅读更多

ALFA Dev工作室原创文章如转载,请注明:转载自博客原文地址:http://blog.csdn.net/kongre/article/details/6731129

每一部搭载Android智能操作系统的设备都具有一系列传感器的集合。其中最标准的两种传感器分别为Accelerometer Sensor(加速度计传感器)和Magnetometer Sensor(磁力计传感器)。当然Android设备当中还可能集中了其他类型的传感器,例如:Temperature Sensor(温度传感器),Proximity Sensor(距离临近传感器)等等其他类型的传感器。

一、Android 目前支持以下几种类型传感器:

二、怎么样获取当前设备某一特定类型传感器的列表(以Accelerometer Sensor为例)

public class SensorActivity extends Activity{
	private static final String TAG = "SensorActivity";
	//declare all ui widgets
	Button getSpecifiedSensorListBtn;
	
	private SensorManager sensorManager;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        //create references to all ui widgets
        getSpecifiedSensorListBtn = (Button)findViewById(R.id.firstTest);
        //initialize the sensorManager
        sensorManager = (SensorManager)getSystemService(Context.SENSOR_SERVICE);
        
        getSpecifiedSensorListBtn.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				  List<Sensor> sensorList = sensorManager.getSensorList(Sensor.TYPE_ACCELEROMETER);
				  //iterate the sensor list
				  for(Sensor sensor : sensorList){
					  Log.d(TAG, "the name of the sensor:" + sensor.getName() + "\t type:" +
							  ((sensor.getType() == Sensor.TYPE_ACCELEROMETER) ? "ACCELEROMETER Sensor" :
							  				"Other Sensor"));
				  }
			}
		});
    }
}


控制台日志输出如下:

三、怎么样获取传感器当中的数据(例如:获取X,Y,Z轴的三个不同方向的加速度)

在介绍使用传感器事件监听器之前,我们先简单介绍一下SmartPhone的三维坐标系:

X-axis:水平方向的,正数值代表右边,负数值代表右边;

Y-axis:垂直方向的,正数值代表上边,负数值代表下边;

Z-axis:指向手机屏幕的前段界面的外边。


下面我们开始编写代码,获取不同方向的加速度的值:

public class SensorEventDemo extends Activity {
	private SensorManager sensorManager;
	//declare all ui widgets
	TextView tv;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.listen_accelerometer);
		//create all references to ui widgets
		tv= (TextView)findViewById(R.id.attitude);
		
		sensorManager = (SensorManager)getSystemService(Context.SENSOR_SERVICE);
	}
	
	private final SensorEventListener sensorEventListener = new SensorEventListener() {
		
		@Override
		public void onSensorChanged(SensorEvent event) {
			tv.setText("x轴加速度:" + event.values[0] + 
					"\ny轴加速度:" + event.values[1] + 
					"\nz轴加速度:" + event.values[2]
			);
		}
		
		@Override
		public void onAccuracyChanged(Sensor sensor, int accuracy) {
			
		}
	};
	
	@Override
	protected void onResume() {
		sensorManager.registerListener(sensorEventListener, 
												sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), 
													SensorManager.SENSOR_DELAY_UI);
		super.onResume();
	}
	
	@Override
	protected void onPause() {
		sensorManager.unregisterListener(sensorEventListener);
		super.onPause();
	}
}


下面为真机运行显示结果:

最后如果你还是觉得我写的不够详细 看的不够爽 不要紧我把源代码的下载地址贴出来 欢迎大家一起讨论学习ALFA Dev工作室希望可以和大家一起进步。

下载地址:
http://download.csdn.net/source/3559419

分享到:
评论

相关推荐

    Android Sensor 入门源码

    Android Sensor 入门源码~~~~~~~~~~~~~~~~~~

    Android Sensor

    Android sensor 入门级,from android 开发解密

    Sensor入门Demo

    Android传感器的入门知识,介绍了安桌内置支持的一些传感器种类,以及如何获得当前设置一些特定种类的传感器,和如何通过传感器事件监听器对数据进行监听和获取。

    Android传感器编程入门

    适于自学的Andorid传感器学习指南,基于Android 2.2、2.3.3及3.0版本讲解

    AndroidSensor:安卓学习从入门到精通源代码-源码通

    目录 安卓基础 安卓案例 项目实战 最近开的新坑,和游戏开发相关的东西

    Android驱动开发热门资料.zip

    《Android核心技术与实例详解》PPT Android HAL实例解析 ...Android入门之HelloWorld.pdf Android系统开发--HAL层开发基础(1).doc Android硬件驱动开发关键技术和HAL移植要领.pdf HAL_sensor模型分析.doc

    SensorDataCollector:收集传感器或伪传感器数据的 Android 传感器数据收集器

    SenSee(传感器数据收集器) 我们已将项目从 Eclipse 移植到以继续开发,因为 。 使用 Android Studio 的 SenSee 项目的存储库位于 。 开发人员没有更新此存储库... ,这是一个不断发展的文档,可帮助贡献者快速入门。

    Google Android SDK开发范例大全(第3版) 1/5

    汲取专家经验,指引入门捷径。 移动网络设备(MID,Mobile Internet Device)的发展趋势锐不可当,其中以智能手机最受瞩目。 《Google Android SDK开发范例大全(第3版)》采用范例集的形式,由浅入深地带领Google ...

    Google Android SDK开发范例大全(第3版) 4/5

    汲取专家经验,指引入门捷径。 移动网络设备(MID,Mobile Internet Device)的发展趋势锐不可当,其中以智能手机最受瞩目。 《Google Android SDK开发范例大全(第3版)》采用范例集的形式,由浅入深地带领Google ...

    Google Android SDK开发范例大全(第3版) 3/5

    汲取专家经验,指引入门捷径。 移动网络设备(MID,Mobile Internet Device)的发展趋势锐不可当,其中以智能手机最受瞩目。 《Google Android SDK开发范例大全(第3版)》采用范例集的形式,由浅入深地带领Google ...

    Google Android SDK开发范例大全(第3版) 5/5

    汲取专家经验,指引入门捷径。 移动网络设备(MID,Mobile Internet Device)的发展趋势锐不可当,其中以智能手机最受瞩目。 《Google Android SDK开发范例大全(第3版)》采用范例集的形式,由浅入深地带领Google ...

    Fiber-sensor-with-Bluetooth

    该示例使用演示了以下内容: 蓝牙其他蓝牙设备本地蓝牙适配器中已配对的蓝牙设备频道/套接字到远程设备通过蓝牙数据先决条件Android SDK 27 Android构建工具v27.0.2 Android支持存储库屏幕截图入门本示例使用Gradle...

    react-native-proximity:React Native包装器,可访问iOS和Android上的接近传感器

    React Native包装器,可访问iOS和Android的接近传感器的状态。 react-native-proximity和scrollview的用法。 入门 安装库 npm install --save react-native-proximity 链接图书馆 react-native link react-native-...

Global site tag (gtag.js) - Google Analytics