Android——摇一摇
实现“摇一摇”功能,其实很简单,就是检测手机的重力感应,具体实现代码如下:
一、在 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——摇一摇相关推荐
- [Android]开发摇一摇分歧表决器过程
心血来潮,走进Android,准备开发一个摇一摇分歧表决器(PS:这个想法源自去年看的一个都市剧<约会专家>中主人公杭杭开发的分歧表决器APP). 简述:摇一摇分歧表决器是一款Androi ...
- android 摇一摇监听,Android摇一摇功能实现(摇一摇监听)
近期项目中要求增加摇一摇功能,搜了相关帖子,自己整理一套代码,发个博客保留一份. 解析:Android中摇一摇主要通过[SensorManager]实现,想了解可以查一下. 上期的不够完善 更新了一下 ...
- Android手机摇一摇的实现SensorEventListener
Android手机摇一摇的实现SensorEventListener 看实例 package com.example.shakeactivity;import android.content.Cont ...
- 玩转Android之加速度传感器的使用,模仿微信摇一摇
Android系统带的传感器有很多种,最常见的莫过于微信的摇一摇了,那么今天我们就来看看Anroid中传感器的使用,做一个类似于微信摇一摇的效果. OK ,废话不多说,我们就先来看看效果图吧: 当我摇 ...
- android传感器实现摇一摇功能
现在的不少应用都用到了摇动手机改变内容的功能,比如微信中的"摇一摇"功能.前两天要实现这个功能,稍微看了一下关于传感器Sensor的内容. 传感器有几种类型: 方向传感器: Sen ...
- Android 摇一摇(二)
最近开发中摇一摇被应用的很广泛,本次是总结摇一摇开发过程中遇到的一些适配的问题,比如有些机型灵敏度比较高就比较容易触发,而有些机型则比较难触发,适配起来比较麻烦,现在给大家介绍一个比较好用的方法: 摇 ...
- Android开发之摇一摇
Android开发之摇一摇 一.效果图 二.布局文件(activity_main) 三.布局文件(activity_yy) 四.java文件(MainActivity) 五.在AndroidManif ...
- 4.16 Android 感应器实现摇一摇的功能
一定要记住的是,在onDestroy方法里面取消监听器的注册.不然会很耗电的. package tech.androidstudio.sensordemo; import android.hardwa ...
- 夜神安卓(android)模拟器 摇一摇
夜神安卓(android)模拟器 摇一摇 以微信摇一摇为例: 第一步:进入微信摇一摇,摇一摇快捷键是Ctrl+8. 第二步:点击模拟器右侧工具栏中操作助手(脚本录制)的功能. 1.打开操作助手后按F1 ...
- android摇一摇功能实现
android摇一摇功能是通过手机中的加速度传感器实现的.当加速度大于某一值时,我们认为手机发生摇动,进而进行更多的处理. 功能实现主要有以下几个步骤: 1.添加权限 <!--重力加速度传感器权 ...
最新文章
- Python 自动化办公之 Excel 拆分并自动发邮件
- BizTalk 2006 简单入门示例程序(附源项目文件下载)
- 秦川团队《科学》刊发研究:新冠感染恒河猴康复后不会再感染
- 关闭Apache的目录浏览功能
- N的倍数(抽屉原理)
- Ajax在IE浏览器会出现中文乱码解决办法
- esp8266 阿里云 arduino_NUCLEO-G071RB通过WiFi与NB连接阿里云
- 长城 宽带 +招商银行专业版
- Intel VT-x 处于禁用解决方法
- Spring Boot Executable jar/war 原理
- springboot入门书籍推荐,“最粉嫩
- Java静态变量小感
- 毕业论文Word排版专题
- 利用工具的SQL注入实战
- 基于springboot电商生鲜购物商城平台设计与实现(含源码+数据库文件)
- 解读场景化视频制作工具的实现过程
- 基于matlab的纸币面额面向识别方法设计
- 7:C语言之求分段函数的值
- 产品体验报告:写作框架
- 体检导检排队系统智能导检