实现“摇一摇”功能,其实很简单,就是检测手机的重力感应,具体实现代码如下:

一、在 AndroidManifest.xml 中添加操作权限

<uses-permission android:name="android.permission.VIBRATE"/>

二、实现代码

package com.xs.test;import android.app.Activity;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.os.Vibrator;
import android.util.Log;
import android.widget.Toast;/*** 安卓晃动手机监听--“摇一摇”* * @author 单红宇* */
public class TestSensorActivity extends Activity {private SensorManager sensorManager;private Vibrator vibrator;private static final String TAG = "TestSensorActivity";private static final int SENSOR_SHAKE = 10;/** Called when the activity is first created. */@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);vibrator = (Vibrator) getSystemService(VIBRATOR_SERVICE);}@Overrideprotected void onResume() {super.onResume();if (sensorManager != null) {// 注册监听器sensorManager.registerListener(sensorEventListener, sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), SensorManager.SENSOR_DELAY_NORMAL);// 第一个参数是Listener,第二个参数是所得传感器类型,第三个参数值获取传感器信息的频率}}@Overrideprotected void onPause() {super.onPause();if (sensorManager != null) {// 取消监听器sensorManager.unregisterListener(sensorEventListener);}}/*** 重力感应监听*/private SensorEventListener sensorEventListener = new SensorEventListener() {@Overridepublic void onSensorChanged(SensorEvent event) {// 传感器信息改变时执行该方法float[] values = event.values;float x = values[0]; // x轴方向的重力加速度,向右为正float y = values[1]; // y轴方向的重力加速度,向前为正float z = values[2]; // z轴方向的重力加速度,向上为正Log.i(TAG, "x轴方向的重力加速度" + x +  ";y轴方向的重力加速度" + y +  ";z轴方向的重力加速度" + z);// 一般在这三个方向的重力加速度达到40就达到了摇晃手机的状态。int medumValue = 19;// 三星 i9250怎么晃都不会超过20,没办法,只设置19了if (Math.abs(x) > medumValue || Math.abs(y) > medumValue || Math.abs(z) > medumValue) {vibrator.vibrate(200);Message msg = new Message();msg.what = SENSOR_SHAKE;handler.sendMessage(msg);}}@Overridepublic void onAccuracyChanged(Sensor sensor, int accuracy) {}};/*** 动作执行*/Handler handler = new Handler() {@Overridepublic void handleMessage(Message msg) {super.handleMessage(msg);switch (msg.what) {case SENSOR_SHAKE:Toast.makeText(TestSensorActivity.this, "检测到摇晃,执行操作!", Toast.LENGTH_SHORT).show();Log.i(TAG, "检测到摇晃,执行操作!");break;}}};
}

Android——摇一摇相关推荐

  1. [Android]开发摇一摇分歧表决器过程

    心血来潮,走进Android,准备开发一个摇一摇分歧表决器(PS:这个想法源自去年看的一个都市剧<约会专家>中主人公杭杭开发的分歧表决器APP). 简述:摇一摇分歧表决器是一款Androi ...

  2. android 摇一摇监听,Android摇一摇功能实现(摇一摇监听)

    近期项目中要求增加摇一摇功能,搜了相关帖子,自己整理一套代码,发个博客保留一份. 解析:Android中摇一摇主要通过[SensorManager]实现,想了解可以查一下. 上期的不够完善 更新了一下 ...

  3. Android手机摇一摇的实现SensorEventListener

    Android手机摇一摇的实现SensorEventListener 看实例 package com.example.shakeactivity;import android.content.Cont ...

  4. 玩转Android之加速度传感器的使用,模仿微信摇一摇

    Android系统带的传感器有很多种,最常见的莫过于微信的摇一摇了,那么今天我们就来看看Anroid中传感器的使用,做一个类似于微信摇一摇的效果. OK ,废话不多说,我们就先来看看效果图吧: 当我摇 ...

  5. android传感器实现摇一摇功能

    现在的不少应用都用到了摇动手机改变内容的功能,比如微信中的"摇一摇"功能.前两天要实现这个功能,稍微看了一下关于传感器Sensor的内容. 传感器有几种类型: 方向传感器: Sen ...

  6. Android 摇一摇(二)

    最近开发中摇一摇被应用的很广泛,本次是总结摇一摇开发过程中遇到的一些适配的问题,比如有些机型灵敏度比较高就比较容易触发,而有些机型则比较难触发,适配起来比较麻烦,现在给大家介绍一个比较好用的方法: 摇 ...

  7. Android开发之摇一摇

    Android开发之摇一摇 一.效果图 二.布局文件(activity_main) 三.布局文件(activity_yy) 四.java文件(MainActivity) 五.在AndroidManif ...

  8. 4.16 Android 感应器实现摇一摇的功能

    一定要记住的是,在onDestroy方法里面取消监听器的注册.不然会很耗电的. package tech.androidstudio.sensordemo; import android.hardwa ...

  9. 夜神安卓(android)模拟器 摇一摇

    夜神安卓(android)模拟器 摇一摇 以微信摇一摇为例: 第一步:进入微信摇一摇,摇一摇快捷键是Ctrl+8. 第二步:点击模拟器右侧工具栏中操作助手(脚本录制)的功能. 1.打开操作助手后按F1 ...

  10. android摇一摇功能实现

    android摇一摇功能是通过手机中的加速度传感器实现的.当加速度大于某一值时,我们认为手机发生摇动,进而进行更多的处理. 功能实现主要有以下几个步骤: 1.添加权限 <!--重力加速度传感器权 ...

最新文章

  1. Python 自动化办公之 Excel 拆分并自动发邮件
  2. BizTalk 2006 简单入门示例程序(附源项目文件下载)
  3. 秦川团队《科学》刊发研究:新冠感染恒河猴康复后不会再感染
  4. 关闭Apache的目录浏览功能
  5. N的倍数(抽屉原理)
  6. Ajax在IE浏览器会出现中文乱码解决办法
  7. esp8266 阿里云 arduino_NUCLEO-G071RB通过WiFi与NB连接阿里云
  8. 长城 宽带 +招商银行专业版
  9. Intel VT-x 处于禁用解决方法
  10. Spring Boot Executable jar/war 原理
  11. springboot入门书籍推荐,“最粉嫩
  12. Java静态变量小感
  13. 毕业论文Word排版专题
  14. 利用工具的SQL注入实战
  15. 基于springboot电商生鲜购物商城平台设计与实现(含源码+数据库文件)
  16. 解读场景化视频制作工具的实现过程
  17. 基于matlab的纸币面额面向识别方法设计
  18. 7:C语言之求分段函数的值
  19. 产品体验报告:写作框架
  20. 体检导检排队系统智能导检

热门文章

  1. 从扎克伯格的中国之行说起
  2. JDK基础脚本工具总结
  3. opc服务器服务器名称怎么注册,如何知道OPC服务器的CLSID?
  4. 3-如何进行市场规模的分析预测-1
  5. 2017-2018-2 20155314《网络对抗技术》Exp8 Web基础
  6. 暗物质组成原理当然是不存在计算机,关于引力子和暗物质的猜想,暗物质不存在!关注跃迁理论很重要...
  7. 虚幻4基础知识——编辑器
  8. 重装win10系统后不识别第二块光驱硬盘
  9. Linux mount挂载命令
  10. 解决局域网内win7出现IPV4地址冲突的问题