Android 微信摇一摇记录摇的次数
2016-05-18 20:48
411 查看
源码:http://download.csdn.net/detail/lm_zp/9524394
Xml
MainActivity.java 震动加权限
Xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity" > <TextView android:id="@+id/text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:text="欢迎" /> </RelativeLayout>
MainActivity.java 震动加权限
package com.example.mygravitysensor; import android.hardware.Sensor; import android.hardware.SensorEvent; import android.hardware.SensorEventListener; import android.hardware.SensorManager; import android.os.Bundle; import android.os.Vibrator; import android.app.Activity; import android.app.Service; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.TextView; public class MainActivity extends Activity implements SensorEventListener{ //定义sensor管理器 private SensorManager mSensorManager; //震动 private Vibrator vibrator; private TextView text; int num=0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //获取传感器管理服务 mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE); //震动 vibrator = (Vibrator) getSystemService(Service.VIBRATOR_SERVICE); text = (TextView) findViewById(R.id.text); text.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub text.setText("摇一摇"); num=0; } }); } @Override protected void onResume(){ super.onResume(); //加速度传感器 mSensorManager.registerListener(this, mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), //还有SENSOR_DELAY_UI、SENSOR_DELAY_FASTEST、SENSOR_DELAY_GAME等, //根据不同应用,需要的反应速率不同,具体根据实际情况设定 SensorManager.SENSOR_DELAY_NORMAL); } @Override protected void onStop(){ mSensorManager.unregisterListener(this); super.onStop(); } @Override protected void onPause(){ mSensorManager.unregisterListener(this); super.onPause(); } @Override public void onAccuracyChanged(Sensor sensor, int accuracy) { // TODO Auto-generated method stub } @Override public void onSensorChanged(SensorEvent event) { // TODO Auto-generated method stub // TODO Auto-generated method stub int sensorType = event.sensor.getType(); //values[0]:X轴,values[1]:Y轴,values[2]:Z轴 float[] values = event.values; if(sensorType == Sensor.TYPE_ACCELEROMETER){ /*因为一般正常情况下,任意轴数值最大就在9.8~10之间,只有在你突然摇动手机 *的时候,瞬时加速度才会突然增大或减少。 *所以,经过实际测试,只需监听任一轴的加速度大于14的时候,改变你需要的设置 *就OK了~~~ */ if((Math.abs(values[0])>14||Math.abs(values[1])>14||Math.abs(values[2])>14)){ num++; //摇动手机后,设置button上显示的字为空 text.setText("摇了"+num+"下"); //摇动手机后,再伴随震动提示~~ vibrator.vibrate(500); } } } }
相关文章推荐
- Java小程序---接口中抽象方法的实现(解决了JAVA语言不能多继承的问题)
- 微信企业付款
- 微信js-sdk图片上传下载——java完整流程
- 运用PopWindow实现仿微信弹出下拉列表
- 微信报40029错误
- 刨坑:Flex布局新旧混合写法兼容写法详解(兼容微信)
- Android微信支付
- 微信支付坑:url未注册
- Android微信支付
- 微信页面的代码|你一定没有看过这么神奇的代码
- java微信开发第二步 获取消息和回复消息
- 实现微信翻页效果
- java微信开发API第一步 服务器接入
- 实习期间第二个小程序
- 转:基于TLS1.3的微信安全通信协议mmtls介绍
- 使用配置文件配置微信自动回复内容信息
- 【fastweixin框架教程8】微信企业号临时素材管理
- 微信打开网址添加在浏览器中打开提示
- 微信公众号-获取用户信息(网页授权获取)
- 解密微信拼团电商:拼多多