利用Sensor实现android手机类似于微信摇一摇

转载 2012年03月24日 23:04:20


出处:http://blog.csdn.net/jamin0107/article/details/7297367

传感器有几种类型:
方向传感器: Sensor.TYPE_ORIENTATION
加速度(重力)传感器: Sensor.TYPE_ACCELEROMETER
光线传感器: Sensor.TYPE_LIGHT
磁场传感器: Sensor.TYPE_MAGNETIC_FIELD
距离(临近性)传感器: Sensor.TYPE_PROXIMITY
温度传感器: Sensor.TYPE_TEMPERATURE

 

这里我们利用的是加速度传感器

 

 

[java] view plaincopy
  1. package com.jamin.sensor;  
  2.   
  3. import android.app.Activity;  
  4. import android.app.Service;  
  5. import android.hardware.Sensor;  
  6. import android.hardware.SensorEvent;  
  7. import android.hardware.SensorEventListener;  
  8. import android.hardware.SensorManager;  
  9. import android.os.Bundle;  
  10. import android.os.Vibrator;  
  11. import android.util.Log;  
  12. import android.view.View;  
  13. import android.widget.Button;  
  14. import android.widget.TextView;  
  15.   
  16. public class SensorTestActivity extends Activity implements SensorEventListener{  
  17.     /** Called when the activity is first created. */  
  18.   
  19.   
  20.     TextView tv = null;  
  21.     Button button = null;  
  22.     SensorManager sensorManager = null;  
  23.     Vibrator vibrator = null;  
  24.   
  25.     @Override  
  26.     public void onCreate(Bundle savedInstanceState) {  
  27.         super.onCreate(savedInstanceState);  
  28.         setContentView(R.layout.main);  
  29.   
  30.         button = (Button) findViewById(R.id.button1);  
  31.         tv = (TextView) findViewById(R.id.textview1);  
  32.         button.setOnClickListener(new View.OnClickListener() {  
  33.   
  34.             @Override  
  35.             public void onClick(View v) {  
  36.   
  37.                 // TODO Auto-generated method stub  
  38.                 tv.setText("文本复原");   
  39.             }  
  40.         });  
  41.   
  42.         sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);  
  43.         vibrator = (Vibrator) getSystemService(Service.VIBRATOR_SERVICE);  
  44.   
  45.   
  46.     }  
  47.   
  48.   
  49.   
  50.   
  51.   
  52.   
  53.     @Override  
  54.     protected void onPause() {  
  55.   
  56.         // TODO Auto-generated method stub  
  57.         super.onPause();  
  58.         sensorManager.unregisterListener(this);  
  59.     }  
  60.   
  61.   
  62.   
  63.   
  64.   
  65.   
  66.     @Override  
  67.     protected void onResume() {  
  68.   
  69.         // TODO Auto-generated method stub  
  70.         super.onResume();  
  71.         sensorManager.registerListener(this, sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), SensorManager.SENSOR_DELAY_NORMAL);  
  72.   
  73.     }  
  74.   
  75.   
  76.   
  77.   
  78.   
  79.   
  80.     @Override  
  81.     public void onAccuracyChanged(Sensor sensor, int accuracy) {  
  82.         //当传感器精度改变时回调该方法,Do nothing.  
  83.     }  
  84.   
  85.   
  86.   
  87.     @Override  
  88.     public void onSensorChanged(SensorEvent event) {  
  89.   
  90.           
  91.         int sensorType = event.sensor.getType();  
  92.         //values[0]:X轴,values[1]:Y轴,values[2]:Z轴  
  93.         float[] values = event.values;  
  94.         if(sensorType == Sensor.TYPE_ACCELEROMETER){              
  95.             if((Math.abs(values[0])>17||Math.abs(values[1])>17||Math.abs(values[2])>17)){  
  96.                 Log.d("sensor ""============ values[0] = " + values[0]);  
  97.                 Log.d("sensor ""============ values[1] = " + values[1]);  
  98.                 Log.d("sensor ""============ values[2] = " + values[2]);  
  99.                 tv.setText("摇一摇");  
  100.                 //摇动手机后,再伴随震动提示~~  
  101.                 vibrator.vibrate(500);  
  102.             }  
  103.   
  104.   
  105.         }  
  106.     }  
  107.   
  108.   
  109.   
  110.   
  111.   
  112.   
  113.   
  114. }  


记得在onresume和onpause的时候开关sensor的监听事件。

如果想调整sensor的敏感程度,就去修改,value[0,1,2] 大于的上限。

相关文章推荐

利用Sensor实现android手机类似于微信摇一摇

传感器有几种类型: 方向传感器: Sensor.TYPE_ORIENTATION 加速度(重力)传感器: Sensor.TYPE_ACCELEROMETER 光线传感器: Sensor.TYPE...

利用html5实现类似微信的手机摇一摇功能-计算摇动次数

1、  deviceOrientation:封装了方向传感器数据的事件,可以获取手机静止状态下的方向数据,例如手机所处角度、方位、朝向等。 2、  deviceMotion:封装了运动传感器数据的事...

android 类似微信的摇一摇实现

  • 2014年07月03日 11:24
  • 3KB
  • 下载

Android 类似微信——摇一摇 的实现

实现“摇一摇”功能,其实很简单,就是检测手机的重力感应,具体实现代码如下: 一、在 AndroidManifest.xml 中添加操作权限 二、实现代码 [java] vie...

Android手机摇一摇功能的简单实现

我需要做一个Android摇一摇的功能,网上我看了很多教程,都写的大同小异,很多了,最近慕课网上也有关于开发摇一摇教程的视屏,讲的很详细,可惜中间视屏少了两节! SensorManager :获取传...

android手机 摇一摇功能简单实现

对于简单的 安卓手机实现摇一摇功能

android-类似微信和米聊中摇一摇找好友的功能的实现

要实现该功能,主要借助于重力感应 package yyy.testsensor; public class TestSensorActivity extends Activity implem...

Android中类似于奇虎360手机卫士中摇一摇效果实现

首先 我们看下360摇一摇的那个界面 (我去,这图片大了点~~,ubuntu找不到图像编辑工具) 因为目前有个蛋疼的需求,要做过类似与这样小球晃来晃去然后跳出个结果来的东西。 说的白点,...

类似于微信语音聊天

  • 2016年08月25日 11:36
  • 3.28MB
  • 下载

Android利用传感器实现-仿微信摇一摇

传感器简单的介绍一下传感器: 就是设备用来感知周边环境变化的硬件, Android中的传感器包含在传感器框架中,属于android.hardware.*(硬件部分) 传感器框架主要包含四个部分:① ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:利用Sensor实现android手机类似于微信摇一摇
举报原因:
原因补充:

(最多只允许输入30个字)