android 实现手机方向识别

//自定义导航图标
private BitmapDescriptor mIconLocation;
//自定义传感器implements SensorEventListener
private MyOrientationListener myOrientationListener;
//把监听的x方向的值存储到这里
private float mCurrentX;

    //初始化图标
        mIconLocation = BitmapDescriptorFactory.fromResource(R.drawable.ic_launcher);
        //初始化回调接口
        myOrientationListener = new MyOrientationListener(getApplicationContext());
        //设置回调接口
        myOrientationListener.setOnOrientationListener(new OnOrientationListener() {

            @Override
            public void OnOrientationChanged(float x) {
                // TODO Auto-generated method stub
                //回调接口的值存入mCurrentX
                mCurrentX=x;
            }
        });

在Activity的生命周期里面实现 与 方向识别的生命周期同步

start方法里面

    //方向识别开始
        myOrientationListener.start();      

stop方法里面

//停止方向传感器
        myOrientationListener.stop();

在本地数据设置里面

    MyLocationData data = new MyLocationData.Builder()
    //设置方向
    .direction(mCurrentX)

//设置自定义图标
        MyLocationConfiguration config = new MyLocationConfiguration(com.baidu.mapapi.map.MyLocationConfiguration.LocationMode.NORMAL,
                        true, mIconLocation);
                mBaiduMap.setMyLocationConfigeration(config);

下面是传感器监听的实现代码

public class MyOrientationListener implements SensorEventListener{
    //用来获取Seosor
    private SensorManager mSensorManager;
    private Sensor mSensor;
    private Context mcontext;
    private float lastX;
    private OnOrientationListener mOnOrientationListener;

    public MyOrientationListener(Context context) {
        super();
        context=this.mcontext;
    }
    @SuppressWarnings("deprecation")
    //开启监听的方法
    public void start(){
            mSensorManager = (SensorManager) mcontext.getSystemService(Context.SENSOR_SERVICE);
            if(mSensorManager!=null){
            mSensor = mSensorManager.getDefaultSensor(SensorManager.SENSOR_ORIENTATION);
        }
            if(mSensor!=null){
            //注册监听
                mSensorManager.registerListener(this, mSensor, SensorManager.SENSOR_DELAY_UI);
            }
    }
    //停止监听的方法
    public void stop(){
        mSensorManager.unregisterListener(this);
    }

    @Override
    public void onAccuracyChanged(Sensor arg0, int arg1) {

    }

    @Override
    public void onSensorChanged(SensorEvent event) {
//拿到方向传感器       if(event.sensor.getType()==Sensor.TYPE_ORIENTATION){
            float x = event.values[SensorManager.DATA_X];
            //如果移动超过一个精度则转向
            if(Math.abs(x-lastX)>1.0){
                if(mOnOrientationListener!=null){
                    mOnOrientationListener.OnOrientationChanged(x);
                }
            }
            lastX  =x;
        }
    }

    public void setOnOrientationListener(OnOrientationListener mOnOrientationListener) {
        this.mOnOrientationListener = mOnOrientationListener;
    }
//定义回调接口
    public interface OnOrientationListener{
    //传递改变的监听的x方向的值
        void OnOrientationChanged(float x);
    }
}
时间: 2024-08-27 19:59:41

android 实现手机方向识别的相关文章

Android手机获取手机唯一识别号(转)

写在前面,发这个帖我想,可能很多人用不到,那你就当科普了解了,其实每个游戏,软件都会获取你的imei废话不说,开始! 在开发手机应用时,开发者最关心的是开发的手机软件有多少用户安装,并且正在使用.这就需要识别手机的唯一性.目前我了解的有两种方法,获取手机的 imei号(imei号是唯一识别手机的号码).获取android id号(android id 是手机系统的唯一号码). 第一种方法: android获取手机imei号的方法在在android系统中获取imei号和其他手机信息一文中做了详细的

车牌OCR识别的流程,手机车牌识别

车牌的OCR识别的流程如下: 手机车牌识别背景 随着人们生活水平的提高,汽车方面的业务量也日益暴涨,加上如今"互联网+"的提出,智能终端(智能手机及平板电脑)及移动通信(4G)发展迅速,人们用手机的频率比用电脑的多,加上手机小巧轻便,成为生活中必要的工作及社交工具,可以预见未来几年60%以上的业务将会逐渐转移到智能终端系统上来.伴随着移动端APP的火爆应用,易泊将原来应用在电脑端的车牌识别技术转移到了移动端,手机车牌识别更加灵活,方便,为人们的应用解决了很多实际困难. 手机车牌识别描述

Google I/O 2014 大会总结 Android开发新方向

昨天晚上,Google I/O 2014大会召开,会上主要展示了以下几个部分的创新内容: Android L 操作系统 首先是界面,谷歌重新设计了一套 UI 规范,并称之为"Material Design",这种语言风格从一些人们常用的物品中汲取灵感,比如纸张和墨水的晕染,让屏幕空间得到最佳应用,提供尽量多的资讯信息,并且可以在智能手机.平板或桌面上提供统一的设计界面. 具体风格上看,Material Design 大量使用了圆形和圆角的扁平化设计,更多的操作是通过滑动完成而不是点击.

手机扫描识别身份证,拍照识别身份证

手机扫描识别身份证,拍照识别身份证 关键词:手机扫描识别身份证,拍照识别身份证,身份证识别,身份证扫描识别,身份证识别SDK 自2013年后,随着智能手机的普及,越来越多的互联网金融公司都推出了自己的金融APP,这些APP都涉及到个人身份证信息的输入认证,如果手动去输入身份证号码和姓名,速度非常慢,且用户体验非常差.为了提高在移动终端上输入身份证信息的速度和准确性,文通科技开发出身份证识别SDK,以满足各行业应用需求,给用户带来更好的体验.金融APP将身份证识别SDK集成到APP中,就能用手机摄

Android开发之方向传感器的使用? (2011-10-13 20:56:05)转载▼

Android开发之方向传感器的使用 (2011-10-13 20:56:05) 转载▼ 标签: android 传感器 方向 指南针 杂谈 分类: 3GAndroid学习笔记 Android中的方向传感器在生活中是一个很好的应用,典型的例子是指南针的使用,我们先来简单介绍一下传感器中三个参数x,y,z的含义,以一幅图来说明.                                      图 1 补充说明:图中的坐标轴x,y,z和传感器中的X,Y,Z没有任何联系! 如上图所示,绿色部

Android的手势操作识别

摘要 首先,在Android系统中,每一次手势交互都会依照以下顺序执行. 1. 接触接触屏一刹那,触发一个MotionEvent事件. 2. 该事件被OnTouchListener监听,在其onTouch()方法里获得该MotionEvent对象. 3. 通过GestureDetector(手势识别器)转发次MotionEvent对象 首先,在Android系统中,每一次手势交互都会依照以下顺序执行. 1. 接触接触屏一刹那,触发一个MotionEvent事件. 2. 该事件被OnTouchLi

【小功能2】android获取手机信息(号码,内存,CPU,分辨率,MAC,IP,SD卡,IMEI,经纬度,信号强度等等)

为了实现一个功能,需要搜集手机信息,自己先在网上找了相关信息进行了汇总,主要是汇集手机的信息,一般想要的信息在手机设置->关于手机->状态消息里面包含了手机的各种信息,下面的代码中也主要显示了那些信息,但是源码的方法我还没有看,先把总结的贴出来.先上图(太多就截取几个).  上代码啦,太多了,就写主要代码了. // 获取Android手机中SD卡存储信息 获取剩余空间 public void getSDCardInfo() { // 在manifest.xml文件中要添加 /* * <u

四、 Android之手机屏幕朝向

模拟当点击按钮时,使手机朝向发生改变. main.xml布局文件 <?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill

获取Android设备的方向

带有g-sensor的Android设备上可通过API获取到设备的运动加速度,应用程序通过一些假设和运算,可以从加速度计算出设备的方向 获取设备运动加速度的基本代码是: SensorManager sm = (SensorManager) context.getSystemService(Context.SENSOR_SERVICE); sm.registerListener(new SensorEventListener() { public void onSensorChanged(Sens