国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android實現檢測手機搖晃的監聽器

2019-12-12 04:11:56
字體:
來源:轉載
供稿:網友

android 檢測手機搖晃的監聽器,實現代碼如下所示:

public class ShakeListener implements SensorEventListener {  // 速度閾值,當搖晃速度達到這值后產生作用  private static final int SPEED_SHRESHOLD = 3000;  // 兩次檢測的時間間隔  private static final int UPTATE_INTERVAL_TIME = 70;  // 傳感器管理器  private SensorManager sensorManager;  // 傳感器  private Sensor sensor;  // 重力感應監聽器  private OnShakeListener onShakeListener;  // 上下文  private Context mContext;  // 手機上一個位置時重力感應坐標  private float lastX;  private float lastY;  private float lastZ;  // 上次檢測時間  private long lastUpdateTime;  // 構造器  public ShakeListener(Context c) {   // 獲得監聽對象   mContext = c;   start();  }  // 開始  public void start() {   // 獲得傳感器管理器   sensorManager = (SensorManager) mContext      .getSystemService(Context.SENSOR_SERVICE);   if (sensorManager != null) {     // 獲得重力傳感器     sensor = sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);   }   // 注冊   if (sensor != null) {     sensorManager.registerListener(this, sensor,        SensorManager.SENSOR_DELAY_GAME);   }  }  // 停止檢測  public void stop() {   sensorManager.unregisterListener(this);  }  // 設置重力感應監聽器  public void setOnShakeListener(OnShakeListener listener) {   onShakeListener = listener;  }  // 重力感應器感應獲得變化數據  public void onSensorChanged(SensorEvent event) {   // 現在檢測時間   long currentUpdateTime = System.currentTimeMillis();   // 兩次檢測的時間間隔   long timeInterval = currentUpdateTime - lastUpdateTime;   // 判斷是否達到了檢測時間間隔   if (timeInterval < UPTATE_INTERVAL_TIME)     return;   // 現在的時間變成last時間   lastUpdateTime = currentUpdateTime;   // 獲得x,y,z坐標   float x = event.values[0];   float y = event.values[1];   float z = event.values[2];   // 獲得x,y,z的變化值   float deltaX = x - lastX;   float deltaY = y - lastY;   float deltaZ = z - lastZ;   // 將現在的坐標變成last坐標   lastX = x;   lastY = y;   lastZ = z;   //sqrt 返回最近的雙近似的平方根   double speed = Math.sqrt(deltaX * deltaX + deltaY * deltaY + deltaZ      * deltaZ)/ timeInterval * 10000;//  MyLog.v("thelog", "===========log===================");   // 達到速度閥值,發出提示   if (speed >= SPEED_SHRESHOLD) {     onShakeListener.onShake();   }  }  public void onAccuracyChanged(Sensor sensor, int accuracy) {}// 搖晃監聽接口public interface OnShakeListener {  public void onShake();}}

以上所述是小編給大家介紹的Android實現檢測手機搖晃的監聽器,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 梨树县| 华池县| 任丘市| 延庆县| 安塞县| 城固县| 东辽县| 万载县| 油尖旺区| 普定县| 邮箱| 疏勒县| 太仆寺旗| 临泉县| 泊头市| 凤庆县| 桂东县| 江山市| 东乡| 株洲市| 丹东市| 新宾| 肇庆市| 乐都县| 灵石县| 原阳县| 攀枝花市| 乌审旗| 天长市| 漳平市| 泉州市| 明溪县| 印江| 临夏市| 赤水市| 莱芜市| 西充县| 北安市| 商水县| 丘北县| 当阳市|