`
l540151663
  • 浏览: 185397 次
  • 性别: Icon_minigender_1
  • 来自: 浙江
社区版块
存档分类
最新评论

微信摇一摇

阅读更多
代码参考:http://www.eoeandroid.com/thread-323631-1-1.html

微信摇一摇主要用了加速度传感器,代码如下:
public class MainActivity extends Activity {
private SensorManager sensorManager;
private Vibrator vibrator;

private static final String TAG = "SensorTest";
private static final int SENSOR_SHAKE = 10;
private long lastUpdateTime=-1;
private static long INTERVAL_TIME=1000;
private static int i=0;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
vibrator = (Vibrator) getSystemService(VIBRATOR_SERVICE);
}

@Override
protected void onResume() {
super.onResume();
if (sensorManager != null) {// 注册监听器
sensorManager.registerListener(sensorEventListener, sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), SensorManager.SENSOR_DELAY_NORMAL);
// 第一个参数是Listener,第二个参数是所得传感器类型,第三个参数值获取传感器信息的频率
}
}

@Override
protected void onPause() {
super.onPause();
if (sensorManager != null) {// 取消监听器
sensorManager.unregisterListener(sensorEventListener);
}
}
/**
* 重力感应监听
*/
private SensorEventListener sensorEventListener = new SensorEventListener() {

@Override
public void onSensorChanged(SensorEvent event) {
// Log.e(TAG,"onSensorChanged");
// 现在检测时间 
        long currentUpdateTime = System.currentTimeMillis(); 
       
        //第一次进入,更新lastUpdateTime
//         if(lastUpdateTime==-1){
//         lastUpdateTime=currentUpdateTime;
////         return ;
//         }
       
        // 两次检测的时间间隔 
        long timeInterval = currentUpdateTime - lastUpdateTime; 
        // 判断是否达到了检测时间间隔 
       
        if (timeInterval < INTERVAL_TIME ) 
            return; 

// 传感器信息改变时执行该方法
float[] values = event.values;
float x = values[0]; // x轴方向的重力加速度,向右为正
float y = values[1]; // y轴方向的重力加速度,向前为正
float z = values[2]; // z轴方向的重力加速度,向上为正

int medumValue = 14;
if (Math.abs(x) > medumValue || Math.abs(y) > medumValue || Math.abs(z) > medumValue) {

// 现在的时间变成last时间 
lastUpdateTime = currentUpdateTime; 

Log.e(TAG, "x轴方向的重力加速度" + x +  ";y轴方向的重力加速度" + y +  ";z轴方向的重力加速度" + z);

vibrator.vibrate(200);
Message msg = new Message();
msg.what = SENSOR_SHAKE;
handler.sendMessage(msg);
}
}

@Override
public void onAccuracyChanged(Sensor arg0, int arg1) {
Log.e(TAG,"onAccuracyChanged");
}
};

/**
* 动作执行
*/
Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch (msg.what) {
case SENSOR_SHAKE:
i++;
Toast.makeText(MainActivity.this, "检测到摇晃,执行操作! "+i, Toast.LENGTH_SHORT).show();
Log.e(TAG, "检测到摇晃,执行操作!"+i);
break;
}
}

};

}

别忘了震动权限:
<uses-permission android:name="android.permission.VIBRATE"/>
分享到:
评论

相关推荐

    微信摇一摇源码

    "微信摇一摇"是微信应用中的一个特色功能,它让用户通过摇动手机来实现特定的互动或功能。这个源码可能揭示了该功能背后的实现原理和技术细节。下面,我们将深入探讨微信摇一摇功能的核心知识点,以及可能关联到的...

    微信摇一摇ibeacon设备配置手册

    ### 微信摇一摇ibeacon设备配置手册 #### 一、微信摇一摇使用说明 微信摇一摇功能是微信内置的一项便捷服务,它允许用户通过摇动手机来发现附近的ibeacon设备,从而获取相关的优惠信息或参与商家活动。在使用此...

    HTML5微信摇一摇

    HTML5微信摇一摇是一种利用现代浏览器的HTML5技术,结合微信API实现的互动功能,让用户在手机上体验类似于微信官方摇一摇的娱乐效果。这个案例提供了简单易懂的代码,适合初学者学习和开发者快速集成到自己的项目中...

    高仿微信摇一摇Demo

    【微信摇一摇功能解析】 微信摇一摇是微信应用程序中的一个特色互动功能,用户只需晃动手机,就能与其他用户产生随机的互动。这个功能在社交、娱乐和营销活动中广泛应用,比如摇红包、摇歌曲、摇电视节目互动等。本...

    仿微信摇一摇

    "仿微信摇一摇"是移动应用开发中的一个有趣特性,尤其在社交应用中非常受欢迎。这个功能的核心在于利用手机的硬件传感器,通常是加速度计,来检测用户快速摇动设备的行为。下面将详细介绍实现这一功能的技术要点和...

    微信摇一摇游戏

    在本文中,我们将深入探讨微信摇一摇游戏的实现原理、核心技术和涉及的关键知识点。 首先,我们需要理解微信开放平台提供的API接口,这些接口允许开发者构建各种应用程序并与微信用户互动。在“微信摇一摇游戏”中...

    仿微信 摇一摇

    下面将详细介绍如何在安卓应用中实现“仿微信摇一摇”的功能。 首先,我们需要理解的是安卓设备中的传感器系统。在安卓系统中,通过SensorManager类可以获取到设备上的各种传感器,如加速度传感器(Accelerometer)。...

    微信摇一摇周边接口文档

    ### 微信摇一摇周边接口文档知识点解析 #### 一、概述 微信摇一摇周边功能是微信为线下商家提供的一个重要的O2O(Online To Offline)工具,旨在帮助商家更好地连接线上与线下的顾客,提升用户体验和服务质量。通过...

    各种微信摇一摇demo

    微信摇一摇功能是微信应用程序中的一个特色互动方式,它为用户提供了一种新颖的交互体验。这个"各种微信摇一摇demo"包含了模仿这一功能的示例代码,可以帮助开发者理解和实现类似的效果。下面我们将深入探讨摇一摇...

    仿微信摇一摇Demo

    在Android应用开发中,"仿微信摇一摇Demo"是一个常见的功能实现,它结合了设备的传感器技术,尤其是重力感应器(Sensor),以及振动器(Vibrator)和动画效果,来模拟微信的摇一摇交互体验。下面将详细介绍这个功能...

    仿微信摇一摇效果

    仿微信摇一摇

    微信摇一摇 动画

    微信摇一摇动画是微信应用中的一个特色功能,让用户通过摇晃手机来触发特定的交互。这个功能在很多场合下被用作互动娱乐或者信息获取的手段,比如摇一摇领红包、摇一摇交友等。本文将详细介绍如何在自己的应用中实现...

    HTML5手机微信摇一摇游戏代码.zip

    HTML5手机微信摇一摇游戏代码是一个利用HTML5技术实现的互动游戏,旨在模拟微信的摇一摇功能。这个游戏的核心是通过JavaScript库jQuery 1.11.1.min.js来处理用户交互和动画效果,使得在手机上玩时能够获得流畅的体验...

    iphone应用之微信摇一摇效果

    在iOS开发中,实现“微信摇一摇”效果是一项有趣且具有挑战性的任务。这个功能在微信中被广泛使用,用户只需摇动他们的iPhone,应用就能识别这一动作并触发特定的功能,比如换歌、交友或者参与互动游戏。下面将详细...

Global site tag (gtag.js) - Google Analytics