android 利用重力感应监听 来电时翻转手机后静音。
来源:互联网 发布:圣女贞德 知乎 编辑:程序博客网 时间:2024/04/29 17:08
在CallNotifier.java中 加入如下代码:
public void GetSensorManager(Context context) {sm = (SensorManager) context.getSystemService(Service.SENSOR_SERVICE);sensor = sm.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);mySensorListener = new SensorEventListener() {@Overridepublic void onSensorChanged(SensorEvent event) {x = event.values[0]; y = event.values[1]; z = event.values[2];if (x < 1 && x > -1 && y < 1 && y > -1) {if (z > 0) {mGoUp = true;} else {mGoUp = false;}} else {//if (x > 1 || x < -1 || y > 1 || y < -1 ) {if ( z > 0 && !mGoUp ) {mRinger.stopRing();if(mySensorListener != null){sm.unregisterListener(mySensorListener); //Add by kylin 2013.07.25}} if ( z < 0 && mGoUp ) {mRinger.stopRing();if(mySensorListener != null){sm.unregisterListener(mySensorListener); //Add by kylin 2013.07.25}} //} }}@Overridepublic void onAccuracyChanged(Sensor sensor, int accuracy) {// TODO Auto-generated method stub}};sm.registerListener(mySensorListener, sensor,SensorManager.SENSOR_DELAY_GAME);}
再在相应位置调用如上方法即可以实现此功能。 重力感应单个实例下载: http://download.csdn.net/detail/wangqilin8888/5819679
android 重力感应监听:
- public class ShakeListener implements SensorEventListener {
- public static ShakeListener sensor1;
- // 速度阈值,当摇晃速度达到这值后产生作用
- private static final int SPEED_SHRESHOLD = 400;
- // 两次检测的时间间隔
- private static final int UPTATE_INTERVAL_TIME = 70;
- // 传感器管理器
- private SensorManager sensorManager;
- // 传感器
- private Sensor sensor;
- // 重力感应监听器
- private OnShakeListener onShakeListener;
- // 上下文
- private static Context context;
- // 手机上一个位置时重力感应坐标
- private float lastX;
- private float lastY;
- private float lastZ;
- // 上次检测时间
- private long lastUpdateTime;
- public static ShakeListener newInstance(Context c) {
- if (sensor1 == null) {
- sensor1 = new ShakeListener();
- context = c;
- return sensor1;
- } else {
- return sensor1;
- }
- }
- // 开始
- public void start() {
- // 获得传感器管理器
- if(sensorManager==null){
- sensorManager = (SensorManager) context
- .getSystemService(Context.SENSOR_SERVICE);
- }
- if (sensorManager != null&&sensor==null) {
- // 获得重力传感器
- sensor = sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
- }
- if (sensor != null) {
- sensorManager.registerListener(this, sensor,
- SensorManager.SENSOR_DELAY_NORMAL);
- }
- }
- // 停止检测
- public void stop() {
- sensorManager.unregisterListener(this);
- }
- // 摇晃监听接口
- public interface OnShakeListener {
- public void onShake();
- }
- // 设置重力感应监听器
- public void setOnShakeListener(OnShakeListener listener) {
- onShakeListener = listener;
- }
- // 重力感应器感应获得变化数据
- @Override
- 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;
- double speed = Math.sqrt(deltaX * deltaX + deltaY * deltaY + deltaZ
- * deltaZ)
- / timeInterval * 10000;
- // 达到速度阀值,发出提示
- if (speed >= SPEED_SHRESHOLD){
- // 手机晃动
- onShakeListener.onShake();
- }
- }
- public void onAccuracyChanged(Sensor sensor, int accuracy) {
- }
- }
- android 利用重力感应监听 来电时翻转手机后静音。
- Android 来电翻转手机静音
- android 通过加速度传感器实现手机来电时翻转静音
- 手机来电翻转静音功能
- Android 利用重力感应调整手机模式
- android 重力感应监听
- android 重力感应,窗口翻转
- android 利用重力感应监测手机摇晃,做出相应反应
- android 手机利用重力感应摇晃 换歌曲 “摇晃”实现
- android 重力感应手机方向
- Android 来电翻转静音实现源码
- android 手机来电监听
- 监听来电情况(静音)
- Android 手机重力感应实现简单介绍
- android L平台增加来电翻转静音菜单、功能
- android 5.1中添加来电翻转静音的功能
- android L平台增加来电翻转静音菜单、功能
- 手机 重力感应
- 关于PHP字符串截取显示相同长度的字符以及UTF8下的ASCII编码
- Android自定义对话框(Dialog)位置,大小
- struts2 Action!jobpage.action后面传参数
- Map缓存适配成带生存期的缓存
- 在oracle的连接(join)中使用using关键字 (转)
- android 利用重力感应监听 来电时翻转手机后静音。
- android lcd调试 高通平台lcd调试深入分析总结(mipi和rgb接口)
- python type函数
- JQuery判断元素是否隐藏
- 通过按键点击实现动态切分窗口的方法
- 单点登录原理
- android textview 使用html实现下划线效果
- 基于XMPP实现的Openfire的配置安装+Android客户端的实现
- Android中内容观察者的使用---- ContentObserver类详解