4.16 Android 感应器实现摇一摇的功能
来源:互联网 发布:淘宝客服操作流程 编辑:程序博客网 时间:2024/04/29 19:11
一定要记住的是,在onDestroy方法里面取消监听器的注册。不然会很耗电的。
package tech.androidstudio.sensordemo;import android.hardware.Sensor;import android.hardware.SensorEvent;import android.hardware.SensorEventListener;import android.hardware.SensorManager;import android.media.MediaPlayer;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;import android.widget.Toast;import java.util.List;public class MainActivity extends AppCompatActivity implements SensorEventListener { private SensorManager mSensorManager; private Sensor mSensor; private int mCount; private long mLastTime; private long mCurrentTime; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE); /*获取手机到底支持多少种的感应器,注意这里的参数时Sensor.TYPE_ALL+++++++++++**/ List<Sensor> sensorList = mSensorManager.getSensorList(Sensor.TYPE_ALL); if(sensorList!=null) for(Sensor sensor:sensorList){ Log.d("Kodulf","Sensor Name"+sensor.getName()); Log.d("Kodulf","Sensor Vender"+sensor.getVendor()); Log.d("Kodulf","Sensor Type"+sensor.getType()); Log.d("Kodulf","+++++++++++++++++"); } else{ Toast.makeText(this,"No Sensor",Toast.LENGTH_LONG).show(); } /*获取 手机感应器结束+++++++++++**/ //实现摇一摇得功能 mSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER); if(mSensor !=null) { mSensorManager.registerListener(this, mSensor, SensorManager.SENSOR_DELAY_FASTEST); }else{ //机型适配里面的,硬件适配 Toast.makeText(this,"您的手机不支持",Toast.LENGTH_LONG).show(); } } @Override public void onSensorChanged(SensorEvent event) { Sensor sensor = event.sensor; int type = sensor.getType(); switch (type) { case Sensor.TYPE_ACCELEROMETER: float[] values = event.values; //x,y,z 是加速度,而不是距离。 float x = values[0]; float y = values[1]; float z = values[2]; Log.d("kodulf","Accelerometer x="+x+" y="+y+" z="+z); yaoYiYao(x,y,z); break; } } @Override public void onAccuracyChanged(Sensor sensor, int accuracy) { } /** * 一定要在onDestroy 里面 进行 取消注册 监听,不然会很耗电的 */ @Override protected void onDestroy() { super.onDestroy(); mSensorManager.unregisterListener(this,mSensor); } //检测是否 在 摇一摇,如果在x,y,z的 方向 上面有 10次 以上 检测到大于13的加速度的情况,就认为是摇一摇了 public void yaoYiYao(float x,float y,float z){ if(Math.abs(x)>13||Math.abs(y)>13||Math.abs(z)>13){ mCount++; mCurrentTime = System.currentTimeMillis(); if(mLastTime==0){ mLastTime=mCurrentTime; } if(mCount>10&&mLastTime-mCurrentTime<3000){ Toast.makeText(this,"摇一摇了",Toast.LENGTH_LONG).show(); Log.d("kodulf","摇一摇了"); mLastTime=mCurrentTime; mCount=0; } } }}
0 0
- 4.16 Android 感应器实现摇一摇的功能
- android Phone 距离感应器锁的实现
- android Phone 距离感应器锁的实现
- Android 方向感应器实现指南针
- Android感应器Sensor的使用
- android 感应器
- android 感应器
- android重力感应器的模拟应用
- Android平台上的11个感应器
- 基于感应器的智能求救系统----以android为例实现
- Android wear 查看所有支持的感应器, 实例:MOTO360<国行>的所有感应器
- Android 摇一摇功能的实现
- 谈谈Android中的感应器
- Android - 获知感应器信息
- android感应器Senor
- 关于Android重力感应器的频率的分析
- 如何强制禁用Android的Sensor方向感应器
- 为什么调用android的重力感应器服务不需要permission?
- 一统江湖 | 微信的野心有多大?
- android 使用ViewDragHelper轻松实现DrawerLayout和SlidMenu侧滑效果
- 添加 MyEclipse Persistence Tools 类库
- 关于Johnson-Trotter和字典序排列在《算法设计与分析基础》中的论述
- Exposing Qt's Q_ENUMS to QML
- 4.16 Android 感应器实现摇一摇的功能
- Linux隐藏进程
- 欢迎使用CSDN-markdown编辑器
- TCP 滑动窗口(已经发出等待对方确认的队列)协议
- springmvc学习笔记(3)-注解的处理器映射器和适配器
- 地理坐标系统/投影坐标系统所有的WKID对应表
- iOS中用户未登录状态下点击下方tabBar触发登录
- springmvc学习笔记(4)-前端控制器
- 吉林大学1466