这个是利用手机摇晃,做出一定反应。具体功能自己开发
package com.ray.test;
import android.R.integer;
import android.app.Activity;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorListener;
import android.hardware.SensorManager;
import android.os.Bundle;
public class SensorTest extends Activity implements SensorListener{
// private SensorManager sensorMgr;
// Sensor sensor = sensorMgr.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
private float x, y, z,last_x,last_y,last_z;
private long lastUpdate;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
SensorManager sensorMgr = (SensorManager) getSystemService(SENSOR_SERVICE);
Sensor sensor = sensorMgr.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
sensorMgr.registerListener(this, SensorManager.SENSOR_ACCELEROMETER,
SensorManager.SENSOR_DELAY_GAME);
}
public void onAccuracyChanged(int sensor, int accuracy) {
// TODO Auto-generated method stub
}
private static final int SHAKE_THRESHOLD = 5000;
//这个控制精度,越小表示反应越灵敏
public void onSensorChanged(int sensor, float[] values) {
// TODO Auto-generated method stub
if(sensor == SensorManager.SENSOR_ACCELEROMETER){
long curTime = System.currentTimeMillis();
//每100毫秒检测一次
if((curTime-lastUpdate)>100){
long diffTime = (curTime-lastUpdate);
lastUpdate = curTime;
x = values[SensorManager.DATA_X];
y = values[SensorManager.DATA_Y];
z = values[SensorManager.DATA_Z];
float speed = Math.abs(x+y+z-last_x-last_y-last_z)/diffTime*10000;
if(speed>SHAKE_THRESHOLD){
//这里写上自己的功能代码
setTitle("x="+(int)x+","+"y="+(int)y+","+"z="+(int)z);
}
last_x = x;
last_y = y;
last_z = z;
}
}
}
}
分享到:
相关推荐
WSGEmptyView控件可能就是利用了这样的重力感应数据,将用户的物理动作(如摇晃手机)与视图状态的切换相结合。例如,用户可能可以通过摇晃手机来触发错误视图转为空视图,或者在无数据时通过特定的动作来触发加载...
重力传感器是现代智能手机和其他移动设备中的重要组件,它能够实时监测设备在三维空间中的重力分布,从而为各种应用提供关键数据。这种技术在游戏、健康管理、虚拟现实(VR)、增强现实(AR)以及日常应用程序中都有...
在Android开发中,实现“微信摇一摇”功能是一个相当有趣的互动体验,它结合了设备的传感器技术,尤其是重力感应器(Gravity Sensor),以及Vibrator服务来模拟真实世界中的摇晃动作。这个功能通常用于游戏、抽奖...
在Android系统中,传感器...总的来说,这个项目为Android开发者提供了一个学习和实践传感器的平台,通过查看和运行代码,你可以更好地理解和利用Android设备的传感器功能,创建出更加智能和交互性强的应用程序。
总的来说,“6-4(加速度传感器)”的Android程序可能是一个教学示例,让开发者或学生了解如何在Android平台上获取和利用加速度传感器的数据。通过深入理解和实践,可以创建出更多创新的应用,提升用户体验。
在Android操作系统中,传感器起着至关重要的作用,它们允许设备感知和响应周围环境的变化,从而为用户提供丰富的交互体验。在Android 2.3 Gingerbread版本中,系统支持11种不同类型的传感器,每种都有其特定的应用...