public class test extends Activity implements OnClickListener, SensorEventListener { private SensorManager mSensorManager; @Override protected void onCreate(Bundle savedInstanceState) { //.............. } } @Override public void onAccuracyChanged(Sensor sensor, int accuracy) { // TODO Auto-generated method stub } private float[] temp; @Override public void onSensorChanged(SensorEvent event) { if(PublicUtil.isWallPaperLocked(this))return; //屏幕如果锁定 if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) { //加速传感器类型(常量之为-1),一起有8种类型,-1表示是all if (temp!=null&&isShake(event.values)) { if (!isShaking) { isShaking = true; Timer timer = new Timer(); TimerTask task = new TimerTask() { @Override public void run() { // TODO Auto-generated method stub getData(); //数据处理,如intent,发送http请求 } }; timer.schedule(task, 1000);//延迟一秒执行 } } temp = event.values.clone();//克隆传感器里的values的值 } } boolean isShake(float[] values){ boolean flag = false; for (int i = 0; i < values.length; i++) { if(temp[i]-values[i]>15){ //如果摇动的力度大于15 就执行摇一摇 System.out.println("temp="+temp[i]+"value="+values[i]); flag = true; break; } } return flag; } @Override protected void onResume() { super.onResume(); StatService.onResume(this); // 加速度传感器 mSensorManager.registerListener(this, mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), // 还有SENSOR_DELAY_UI、SENSOR_DELAY_FASTEST、SENSOR_DELAY_GAME等, // 根据不同应用,需要的反应速率不同,具体根据实际情况设定 SensorManager.SENSOR_DELAY_NORMAL); } @Override protected void onPause() { // TODO Auto-generated method stub super.onPause(); StatService.onPause(this); mSensorManager.unregisterListener(this); } @Override protected void onStop() { // TODO Auto-generated method stub super.onStop(); // this.unRegisterLocationListener(); mSensorManager.unregisterListener(this); }
从这个示例,我们可以基本总结出使用Android传感器的步骤,注册一个SensorEventListener,然后在onSensorChanged方法中处理传感器的数据。
这里需要注意的一点是,我把注册Sensor这个过程放在了onResume()方法中,而取消注册放在了onPause()方法中,这主要是因为,传感器的使用太耗电了,而且一定需要手动取消注册,否则即使Activity不可见,传感器依然在工作中,几个小时内就会耗光电量。
更多传感器的知识参考
http://aliusa.iteye.com/blog/1064560
相关推荐
摇一摇功能是移动应用中常见的一种互动方式,尤其在社交和游戏类应用中颇为流行。这个源码提供了一个带有美观界面的摇一摇实现,非常适合开发者进行学习和参考。以下将详细介绍摇一摇功能的核心知识点及其实现原理。...
在这个"安卓摇一摇传感器相关-手机摇一摇DEMO代码实现摇一摇执行特定程序.zip"压缩包中,包含了实现这一功能的源码示例。 摇一摇功能主要依赖于安卓系统中的SensorManager服务和加速度传感器(Accelerometer Sensor...
在Android平台上实现微信“摇一摇”功能是一个有趣且具有挑战性的任务,涉及到传感器数据的获取、处理以及用户交互的设计。下面将详细讲解这个过程中的关键知识点。 首先,"摇一摇"功能的核心在于手机内置的传感器...
2. **SensorEventListener**:为了监听设备的运动,我们需要实现SensorEventListener接口。这个接口有两个关键方法:`onSensorChanged(SensorEvent event)`和`onAccuracyChanged(Sensor sensor, int accuracy)`。...
SensorEventListener接口有两个重要的回调方法:onSensorChanged()和onAccuracyChanged()。前者会在传感器数据变化时被调用,后者则在传感器精度改变时触发。 2. **设置阈值**: 为了识别出摇一摇的动作,我们需要...
2. **注册SensorEventListener**:在Activity或Service中,创建一个SensorEventListener接口的实现类,用于监听加速度传感器的数据变化。通过SensorManager获取加速度传感器,并注册监听器: ```java ...
在Android平台上,实现“摇一摇”功能是一个有趣且实用的交互方式,常用于游戏、应用切换、抽奖等场景。本教程将详细讲解如何利用Android的SensorManager和SensorEventListener类来构建一个基本的“摇一摇”示例,即...
"摇一摇"动作就是一个常见的用户交互模式,常用于游戏、抽奖或者清理缓存等场景。本篇文章将深入探讨如何在Android中实现摇一摇小球运动的效果。 首先,我们需要理解Android的传感器系统。Android提供了...
这通常在Activity的onCreate()方法中完成,通过调用SensorManager的registerListener()方法,传入SensorEventListener接口的实现类,指定要监听的传感器类型(例如Sensor.TYPE_ACCELEROMETER)和更新频率。...
在Android平台上,实现“摇一摇”功能是一项常见的交互设计,它可以为用户带来新颖的体验。这个案例将探讨如何在Android应用中集成摇一摇事件检测,并触发相应的操作。我们将从以下几个方面进行深入讨论: 1. **...
4. **实现SensorEventListener接口**:为了接收传感器事件,我们需要让Activity实现SensorEventListener接口,并实现其两个方法:`onSensorChanged()` 和 `onAccuracyChanged()`。主要工作在`onSensorChanged()`中,...
6. **事件处理与响应**:当摇一摇事件被识别后,需要有一个事件处理机制来触发相应的业务逻辑,如启动一个新的Activity、更新UI、调用网络接口等。这部分通常涉及多线程处理,以确保UI的流畅性。 7. **测试与优化**...
【Android 仿360摇一摇功能源代码详解】 在Android开发中,实现类似360摇一摇的功能是一项有趣的交互设计,它可以为用户带来新鲜的体验,比如用于抽奖、答题或者切换应用界面等。这个功能的核心在于检测手机的运动...
SensorEventListener接口包含两个关键方法:onSensorChanged(SensorEvent event) 和 onAccuracyChanged(Sensor sensor, int accuracy)。其中,onSensorChanged会在传感器数据发生变化时被调用,我们在这里处理摇一摇...
在移动应用开发中,微信的“摇一摇”功能是一个非常有趣的交互设计,它通过手机的运动传感器数据来触发特定的事件。这个功能不仅让用户有了新鲜的体验,也为开发者提供了创新交互的可能性。本文将深入探讨如何在自己...
在Android开发中,"摇一摇"功能是一个常见的交互方式,它允许用户通过摇动设备来触发特定的应用程序事件,例如切换页面、刷新内容或玩游戏等。本篇将深入讲解如何在Android应用中实现"摇一摇"功能,并提供相关的源...
实现SensorEventListener接口,重写onSensorChanged()方法。在这个方法中,你会接收到每次传感器数据更新的事件。 ```java @Override public void onSensorChanged(SensorEvent event) { if (event.sensor....
根据提供的文件信息,我们可以深入探讨“摇一摇”功能在移动应用开发中的实现方式和技术细节。下面将详细解析与该功能相关的技术要点。 ### 摇一摇功能概述 “摇一摇”功能通常用于手机应用程序中,允许用户通过...
在这个例子中,"this"指的是实现了SensorEventListener接口的当前对象,需要重写`onSensorChanged(SensorEvent event)`方法,这里将接收到传感器的数据: ```java @Override public void onSensorChanged...