通过服务监听手机摇晃事件,启动支付宝
来源:互联网 发布:mysql mac dmg安装包 编辑:程序博客网 时间:2024/04/30 05:31
import android.content.Context;import android.hardware.Sensor;import android.hardware.SensorEvent;import android.hardware.SensorEventListener;import android.hardware.SensorManager;import android.os.Handler;import android.util.Log;import android.widget.Toast;/***这是一个监听手机摇晃事件的监听器*/public class ShakeListener implements SensorEventListener{ public static final String TAG = "ShakeListener"; //摇晃需要持续1/10s public static final int LASTTIME = 70; //摇晃需要速度 public static final int SPEED = 4000; private OnShakelistener listener = null; private long lastTime; private float lastX, lastY, lastZ; private Context cxt; private SensorManager manager = null; private Sensor sensor = null; public ShakeListener( Context cxt ) { this.cxt = cxt; } @Override public void onAccuracyChanged(Sensor arg0, int arg1) { } @Override public void onSensorChanged(SensorEvent arg0) { // TODO Auto-generated method stub// Log.e( TAG , "摇晃了" );// Toast.makeText( cxt , "摇晃了", Toast.LENGTH_SHORT).show(); long curTime = System.currentTimeMillis(); long time = curTime - lastTime; if( time < LASTTIME ) return; //时间已达到 lastTime = curTime; float x = arg0.values[0], y = arg0.values[1], z = arg0.values[2]; float deltaX = x - lastX, deltaY = y - lastY, deltaZ = z - lastZ; lastX = x; lastY = y; lastZ = z; if( Math.sqrt( deltaX*deltaX + deltaY*deltaY + deltaZ * deltaZ ) / time * 10000 < SPEED ) return ; if( listener != null ) listener.onShake(); stop(); new Handler().postDelayed( new Runnable() { @Override public void run() { start(); } } , 400 ); } public void start(){ //先获取的传感器管理器,然后通过管理器获取重力传感器,管理器监听此传感器 manager = (SensorManager) cxt.getSystemService( Context.SENSOR_SERVICE ); if( manager != null ){ sensor = manager.getDefaultSensor( Sensor.TYPE_ACCELEROMETER ); } if( sensor != null ){ manager.registerListener( this , sensor, SensorManager.SENSOR_DELAY_GAME ); } } public void stop(){ manager.unregisterListener( this ); } public void setListener(OnShakelistener listener) { this.listener = listener; } public interface OnShakelistener{ public void onShake(); }}
import com.g.s.blacklist.service.ShakeListener.OnShakelistener;import android.app.Service;import android.content.Intent;import android.os.IBinder;import android.util.Log;import android.widget.Toast;/***选择服务理由是服务看不见界面,通过重载的onDestory达到服务不关闭,当返回桌面式仍然可以调到支付宝*/public class ShakeService extends Service implements OnShakelistener{ public static final String TAG = "shakeService"; private ShakeListener shake; @Override public IBinder onBind(Intent arg0) { // TODO Auto-generated method stub return null; } @Override public void onCreate() { shake = new ShakeListener( this ); shake.setListener( this ); shake.start(); super.onCreate(); } @Override public void onDestroy() { // TODO Auto-generated method stub startService( new Intent( this, ShakeService.class ) ); super.onDestroy(); } @Override public void onShake() { Intent intent = getPackageManager().getLaunchIntentForPackage("com.eg.android.AlipayGphone"); if( intent != null ){ startActivity( intent ); }else{ Toast.makeText( this , "尚未安装支付宝!", Toast.LENGTH_SHORT ).show(); } }}
0 0
- 通过服务监听手机摇晃事件,启动支付宝
- Android 手机摇晃监听
- Android摇晃监听事件
- 【原创】在Android模拟器上实现监听手机摇晃事件
- iOS手机摇晃事件
- Android实现摇晃手机的监听
- Android(1) service实现手机摇晃监听
- Android 实现摇晃手机的监听
- 监听屏幕解锁事件,启动服务
- 手机摇晃
- 通过Android系统日志监听程序启动事件
- 监听手机的启动
- 仿支付宝EditText 部分手机监听不到删除键
- Android检测手机摇晃
- IOS检测摇晃手机
- 支付宝支付--手机支付
- 监听手机截屏事件
- 使用支付宝 手机转账服务 收款只要回短信
- cocos2d-x 使用位图工具制作 fnt字体
- ecshop学习网站
- Android资源文件混淆
- 使用ntpdate校正linux系统的时间
- 把SQL的执行结果赋值给变量,然后将其作为while的条件,循环执行SQL
- 通过服务监听手机摇晃事件,启动支付宝
- Android WindowManager详解
- poj1276——Cash Machine(多重背包)
- easyui的datagrid右侧没有边框线
- iOS9+ 中http请求问题
- 别人觉得没有必要在你面前表现得很好
- C++实验4—乘法口诀表
- Android 面试精华题目总结
- Android studio的SVN出现Authentication required的问题