安卓距离传感器编程

最近做的项目要用到距离传感器,所以写下这篇文章记录下心得。

其实心得只有一点,看官方的说明文档真的灰常重要。完了。。

贴上代码:

package com.example.mysensor;

import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.app.Activity;
import android.view.Menu;
import android.widget.TextView;

public class MainActivity extends Activity {
	
	private myListener listener;
	private SensorManager sm;
	private TextView tv;
	private Sensor sensor;
	
	private Handler handler = new Handler()
	{
		@Override
		public void handleMessage ( android.os.Message msg)
		{
			float data = (Float)msg.obj;
			String str = String.valueOf(data);
			tv.setText(str);
		}
	};

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		listener = new myListener();
		tv = (TextView)this.findViewById(R.id.text);
		
		new Thread(new myThread()).start();
		
	}
	
	private class myListener implements SensorEventListener
	{

		@Override
		public void onAccuracyChanged(Sensor sensor, int accuracy) {
			// TODO Auto-generated method stub
			
		}

		@Override
		public void onSensorChanged(SensorEvent event) {
			// TODO Auto-generated method stub
			float value = event.values[0];
			Message message = Message.obtain();
			message.obj = value;
			handler.sendMessage(message);
			
		}
		
	}
	
	@Override
	protected void onDestroy()
	{
		sm.unregisterListener(listener);
		listener = null;
		super.onDestroy();
	}
	
	private class myThread implements Runnable
	{
		@Override
		public void run() {
			// TODO Auto-generated method stub
			sm = (SensorManager)getSystemService(SENSOR_SERVICE);
			sensor = sm.getDefaultSensor(Sensor.TYPE_PROXIMITY);
			sm.registerListener(listener, sensor, SensorManager.SENSOR_DELAY_GAME);
			
		}
		
	}

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值