阅读更多 MainActivity.java
package com.sensor;import com.sensor.ShakeListener.OnShakeListener;import android.os.Bundle;import android.app.Activity;import android.view.Menu;public class MainActivity extends Activity {private ShakeListener shakeListener;    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);                shakeListener=new ShakeListener(this);        shakeListener.setOnShakeListener(new Shake());    }        class Shake implements OnShakeListener{@Overridepublic void onShake() {// TODO Auto-generated method stubsetTitle("正在摇动了手机");}        }            @Overrideprotected void onResume() {// TODO Auto-generated method stubsuper.onResume();shakeListener.start();}@Overrideprotected void onPause() {// TODO Auto-generated method stubsuper.onPause();shakeListener.stop();}@Overrideprotected void onDestroy() {// TODO Auto-generated method stubsuper.onDestroy();shakeListener.stop();}@Override    public boolean onCreateOptionsMenu(Menu menu) {        getMenuInflater().inflate(R.menu.activity_main, menu);        return true;    }}


ShakeListener.java
package com.sensor;import android.app.Service;import android.content.Context;import android.hardware.Sensor;import android.hardware.SensorEvent;import android.hardware.SensorEventListener;import android.hardware.SensorManager;import android.os.Vibrator;public class ShakeListener implements SensorEventListener {private static final int SPEED_SHRESHOLD=3000;private static final int UPDATE_INTERVAL_TIME=78;private SensorManager sensorManager;private Sensor sensor;private Vibrator vibrator;private OnShakeListener onShakeListener;private Context context;private float lastx;private float lasty;private float lastz;private long lastUpdateTime;public ShakeListener(Context context) {super();this.context = context;start();}public void start() {// TODO Auto-generated method stubsensorManager=(SensorManager) context.getSystemService(Context.SENSOR_SERVICE);vibrator=(Vibrator) context.getSystemService(Service.VIBRATOR_SERVICE);if(sensorManager!=null){sensor=sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);}if(sensor!=null){sensorManager.registerListener(this, sensor, SensorManager.SENSOR_DELAY_GAME);}}public void stop() {// TODO Auto-generated method stubsensorManager.unregisterListener(this);}public void setOnShakeListener(OnShakeListener listener){onShakeListener=listener;}public interface OnShakeListener{public void onShake();}@Overridepublic void onSensorChanged(SensorEvent event) {// TODO Auto-generated method stublong currentUpdateTime=System.currentTimeMillis();long timeInterval=currentUpdateTime-lastUpdateTime;if(timeInterval=SPEED_SHRESHOLD){onShakeListener.onShake();vibrator.vibrate(1000);}}private boolean coordinate(Float x,Float y,Float z){if((x>10&&y>10)||(x>10&&z>10)||(y>10&&z>10)){return true;}else{return false;}}@Overridepublic void onAccuracyChanged(Sensor sensor, int accuracy) {// TODO Auto-generated method stubvibrator.vibrate(0);}}

manifest.xml
    
  • com.sensor.01.rar (686.6 KB)
  • 下载次数: 2

更多相关文章

  1. 发一条短信,找到你的手机---android平台
  2. Android手机目录结构
  3. tabhost置底
  4. 百度地图SDK 手机报错java.lang.UnsatisfiedLinkError: No imple
  5. android判断当前手机是否是小米
  6. Android(安卓)屏幕宽度、高度
  7. 解决Linux下USB连接android手机
  8. 获取手机联系人
  9. android customDialog自定义对话框

随机推荐

  1. Android(安卓)HandlerThread使用方法
  2. 完美解决android Studio打开报错 https:/
  3. Launcher
  4. Android(安卓)中Button点击频率的控制
  5. android提示错误: The process android.pr
  6. android各种声音类型级数设定及默认值
  7. 重写dialog
  8. Unity3d和iOS、Android的混合开发介绍
  9. Android(安卓)面试题之基础(不断更新)
  10. android上传图片至服务器