android sensor传感器
16lz
2021-01-26
阅读更多 MainActivity.java
ShakeListener.java
manifest.xml
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
更多相关文章
- 发一条短信,找到你的手机---android平台
- Android手机目录结构
- tabhost置底
- 百度地图SDK 手机报错java.lang.UnsatisfiedLinkError: No imple
- android判断当前手机是否是小米
- Android(安卓)屏幕宽度、高度
- 解决Linux下USB连接android手机
- 获取手机联系人
- android customDialog自定义对话框