百度SDK之方向传感器的应用

字节跳动Android面试凉凉经:题目基本都答对,但一面就被刷,问hr原因说是机密... 背景 面是是上海的Android leader岗位,周日一轮面试,自我感觉答的都还不错。 结果收到邮件面试结束了,说什么"你优秀的学识和能力给我们留下了深刻的印象!经过对你综合情况的仔细评估,并经过与岗位需求进行谨慎匹配和权衡之后, 非常遗憾,我们这次没有和你达成合作。但你的信息已经被录入到公司人才库"。意思就是挂了呗。 后来打电话问hr,没跟我说原因。然后面试过程中,有一点奇怪的地方,面试前面试官跟我说我面的而这个岗位有点奇怪,他也没跟我说哪奇怪。 面试过程 下面是面试官提的一些问题: .. 阅读详情

如今大部分智能手机都有各种各样的传感器,在上两篇博客里面,我们学习了如何显示地图以及如何在地图上找到自己的位置。

接下来,我们要结合方向传感器来配合手机来回移动。

先拉出效果图看看。
这里写图片描述
不多说了,下面就是撸代码的时候了。
首先我们需要一个图标来表示方向,这个我就不往上传了,需要的同学就联系我。
如何初始化图标呢?
我们需要先定义一个BitmapDescriptor对象,然后对它进行初始化

private BitmapDescriptor mIconLocation;
mIconLocation= BitmapDescriptorFactory.fromResource(R.mipmap.navi_map_gps_locked);
        //初始化图标

这样设置以后,我们就可以在手机上看到效果了,不过我们会发现无论怎样晃动手机,方向都不会改变。

导航图标出现了,那么如何让它跟随手机移动呢?

我们这是需要新建一个类,并且实现Sensor接口,用来获取手机系统服务。既然是要获得手机本身的传感器服务,那么我们就需要实例化一个SensorManager对象,再接着实例化一个Sensor对象,当然我们也可以实例化一个全文环境Context.

private SensorManager mSensorManager;
    private Context mContext;
    private Sensor mSensor;

我们还要在这个类里面写一个onSensorChanged()方法,用来写当我们晃动手机时的逻辑代码。不过我们暂时先不写。为了设置方向传感器的关闭和开启,我们还需要在这个类里面设置两个方法,start()开启传感器,stop()方法关闭传感器。这里我们在设置一个构造方法,传入参数Context.

public Direction(Context context){
        this.mContext=context;
    }
    public void start(){
    }//用于开启传感器
    public void stop(){
    }//关闭传感器
    public void onSensorChanged(SensorEvent event){
    }//手机晃动的逻辑代码

然后我们接着在start()方法里面Context的getSystemService(Context.SENSOR_SERVICE)方法并且强制转化为SensorManager对象,以此来获取手机传感器服务,不过我们还需要进行判断,如果SensorManager对象不为空的话,再通过SensorManager对象的getDefaultSensor(Sensor.TYPE_ORIENTATION)获得方向传感器,把它转给Sensor对象。

mSensorManager=(SensorManager) mContext.getSystemService(Context.SENSOR_SERVICE);
        if (mSensorManager!=null){
         mSensor=  mSensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION);
        //获得方向传感器
        }
        if(mSensor!=null){
            mSensorManager.registerListener(this,mSensor,SensorManager.SENSOR_DELAY_UI);
        }

在代码里,我们还要对Sensor对象判断是否为空,不为空的话,就通过SensorManager.registerListener()来开启方向传感器,注意我们传入的最后一个参数是关于灵敏度设置的。这样的话我们就把start()方法里面的内容全给写好了。
在stop()方法里面我们至于添加

mSensorManager.unregisterListener(this);

来关闭传感器服务。

接下来,我们就需要在onSensorChanged()方法来写逻辑代码了

首先我们要注意的是这个方法里我们传入了SensorEvent实例
,判断得到的传感器服务类型是为方向传感器以后,我们需要定义一个float类型的对象来存储此时的X轴方向,为了进行对比,我们在刚开始的时候需要定义一个最初的X轴位置。

 private float lastX;
 public void onSensorChanged(SensorEvent event){
        if(event.sensor.getType()==Sensor.TYPE_ORIENTATION){

            float x=event.values[SensorManager.DATA_X];
 .......
  }
}

剩下我们就需要在这个方法里面添加回调函数了,就是当x轴位置坐标改变之后进行的活动。这时候,我们需要再定义一个接口。

public interface OnOrientationListener {
        void onOrientationChanged(float x);
    }
}

实例化这个接口之后再设置一个方法

public void setOnOrientationListener(OnOrientationListener mOnOrientationListener){
       this.mOnOrientationListener=mOnOrientationListener;
    }

这样之后我们就可以添加自己的回调函数了。

if(Math.abs(x-lastX)>0.2){
                if (mOnOrientationListener!=null){
                    mOnOrientationListener.onOrientationChanged(x);
                }

            }
            lastX=x;

为了让方向变化随手机移动更明显一些,我在这里设置了当x坐标改变超过0.2时就发生变化。
这样的话,我们就把实现Sensor接口的这个类完成了。
剩下的就是在主活动里面添加代码了。
为了不让大家感觉篇幅过多,我把这部分放在下一篇博客里面,并且在下一篇博客里面讲下如何切换卫星地图,如何添加实时地图,以及如何找到我的位置。

我也是安卓开发的新手,写的难免会有什么错误,希望大神看到的话,可以帮忙指出来。

这里写图片描述

深入掌握Android百度地图SDK v3.4.0定位及方向传感器集成 在移动应用中集成地图服务是开发过程中的常见需求。百度地图SDK为开发者提供了丰富的API接口和工具,能够帮助开发者快速实现地图展示、定位、路径规划等服务。本章将介绍如何在Android项目中集成百度地图SDK。BaiduLocationApi是百度地图SDK提供的一个强大的接口,它支持多种定位方式,如GPS、基站和Wi-Fi等,能够满足不同场景下的定位需求。它支持多种坐标系转换,以及提供逆地理编码功能,可以将经纬度信息转换为具体地址信息,极大地方便了开发者获取详细的地理位置信息。 阅读详情

相关推荐

sa-sdk-javascript, 传感器分析 JavaScript SDK.zip

sa-sdk-javascript, 传感器分析 JavaScript SDK sa-sdk-javascript传感器分析 JavaScript SDK紧急招聘前端工程师,运维工程师,大数据工程师等,各种级别的都需要,求发送到我邮箱( shengyonggen@sensorsdata.cn

四种支持向量机工具箱使用概念,androidsdk开发方向

训练与测试样本分别为n1、n2,它们是3 x 15的矩阵,即特征矢量是三维,训练与测试样本数目 均是15;由于是三类分类,所以训练与测试目标x1、x2的每一分量可以是1、2或是3,分别对应 三类,如下所示: 1-a-r算法定义:对于N类问题,构造N个两类分类器,第i个分类器用第i类训练样本作为正的训练 样本,将其它类的训练样本作为负的训练样本,此时分类器的判决函数不取符号函数sign,最后的 输出是N个两类分类器输出中最大的那一类。 在文件Classification_LS_SVMla

m0_66264938的博客 1023

基于java的传感器信息显示终端

该设计是基于java开发语言,实现将下位机传递过来的信息,显示在终端,如人体红外,温湿度,光敏等。

Android 百度地图 SDK v3.0.0 (二) 定位与结合方向传感器

转载请标明出处:http://blog.youkuaiyun.com/lmj623565791/article/details/37730469在上一篇博客中,我们成功把地图导入了我们的项目。本篇我们准备为地图添加:第一,定位功能;第二,与方向传感器结合,通过旋转手机进行道路的方向确认。有了这两个功能,地图已经可以为我服务了~~~~效果图:好了,可以代码,为了方便,我把所有的按钮都放到了menu菜单中。1...

weixin_30414245的博客 386

海康javaSDK及demo

不能免积分好难受,给一起开发java海康设备的同志,内部SDK和Demo,包括人脸对比,车牌识别等多个功能Demo.最重要的是SDK的版本比官网发布的要新很多

从STM32F411到华大HC32F460:一个真实项目移植的踩坑与填坑全记录

本文详细记录了从STM32F411移植到华大HC32F460芯片的全过程,包括开发环境搭建、时钟树配置、中断处理、外设驱动、看门狗陷阱、Flash操作和低功耗设计等关键坑点及解决方案。特别针对HC32F460的200MHz主频、双PLL架构和HSRUN模式等特性进行了深入分析,为工程师提供实用的移植指南,帮助节省大量调试时间。

weixin_33691817的博客 418

百度地图室内地图及方向传感器实现

1、添加室内图开关的按钮 在布局文件中添加如下代码: <Button android:id="@+id/isIndoor" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignPa...

Done___的博客 1644

不带DDR的ZYNQ使用OCM加载程序运行的方法

软件版本:Vivado Vitis2019.2 第一步: 在Vivado的ZYNQ Block Design时候不配置DDR 第二步: 在Vitis中: 1、 在Vitis中新建Platform,选择xsa文件: 2、 在xparameters.h中添加DDR的地址空间定义,如下: 3、 修改链接文件,修改每个段都到ram_0,因为ram_1空间全部给到应用程序 4、 修改fsbl工程的main.c,增加XPAR_PS7_DDR_0条件编译 5、 修改fsbl.h,重定义DDR_EN

hpf247的博客 5533

Android使用百度地图SDK实现定位与方向传感器匹配

前言:有时候,我们活得很累,并非生活过于刻薄,而是我们太容易被外界的氛围所感染,被他人的情绪所左右。行走在人群中,我们总是感觉有无数穿心掠肺的目光,有很多飞短流长的冷言,最终乱了心神,渐渐被缚于自己编织的一团乱麻中。 好消息是五月份终于要过去了······课实在太多了,上的头都大了······ 先来看看运行效果: 1.普通模式:

James先生的博客 1万+

《数据结构》02-线性结构1 两个有序链表序列的合并

题目 本题要求实现一个函数,将两个链表表示的递增整数序列合并为一个非递减的整数序列。 函数接口定义: List Merge( List L1, List L2 ); 其中List结构定义如下: typedef struct Node *PtrToNode; struct Node { ElementType Data; /* 存储结点数据 */ PtrToNode Next;...

叫我皮卡丘 7662

Cadence OrCAD Capture原理图中为功能模块分配ROOM的方法

本文详解介绍原理图设计阶段为原理图模块分配ROOM的方法。

fydar的博客 1345

Android studio百度地图SDK开发 2020最新超详细的Android 百度地图开发讲解(2) 实时定位的实现,配合方向传感器

2020最新超详细的Android 百度地图开发讲解(2) 实时定位的实现,配合方向传感器 来自百度地图官方平台关于坐标系的说明: Android定位SDK产品,支持全球定位,能够精准的获取经纬度信息。根据开发者的设置,在国内获得的坐标系类型可以是:国测局坐标、百度墨卡托坐标 和 百度经纬度坐标。在海外地区,只能获得WGS84坐标。请开发者在使用过程中注意坐标选择。定位SDK默认输出GCJ02坐...

Ace_bb的博客 4480

C# 调用高德地图关键词 API

今天我们要一起探索如何使用 C# 来调用高德地图的关键词搜索 API,从而实现精准的地理位置搜索功能。高德地图的关键词搜索 API 可以帮助我们轻松地实现这一点,它能够返回一系列匹配关键词的地点坐标和其他相关信息。通过简单的几行 C# 代码,我们就实现了调用高德地图关键词搜索 API 的功能。接下来,我们将在一个 C# 控制台应用中实现调用高德地图关键词搜索 API 的功能。此外,如果要在生产环境中使用,还需要考虑安全性问题,例如不要在客户端暴露 API 密钥。🔥关注墨瑾轩,带你探索编程的奥秘!

java专栏 1105

Android--第三方百度地图

一,第三方SDK 1.登陆百度SDK官方网站 https://lbsyun.baidu.com/ 2.注册账号-&gt;申请开发者认证-&gt;注册应用 2.1注册应用 开发版本密匙口令默认:android 上线版本开发口令自己设置jks里设置密码(别名设置的是android jks文件要粘贴到相应位置) 3.下载SDK,下载demo -&gt;查看文档 二,实现功能 1.引入基本...

weixin_43609490的博客 257

FPGA控制AD5754实现模数转换Verilog代码与测试激励

本文提供了使用FPGA控制AD5754芯片实现数字信号转模拟信号的Verilog代码和测试激励。AD5754芯片简介:AD5754是一款16位数字信号转模拟信号的芯片。通信方式:FPGA与AD5754之间通过SPI接口进行通信,SPI时钟clk的最大频率为30MHz。模拟输出:AD5754提供了四路模拟输出。工作方式:当前AD5754采用单极性工作方式。指令刷新:根据现有理解,同轴的速度和电流指令应同时刷新。利用LDAC引脚控制模拟信号的刷新,但需实际验证。CLR信号验证。

whm128的博客 245

海康Visionmaster-全局脚本:VM 加载方案后自动执行 的方法,如何让VM在方案加载后自动执行流程?

海康Visionmaster-全局脚本:VM 加载方案后自动执行 的方法,如何让VM在方案加载后自动执行流程?

视觉人机器视觉的博客 2036

Android 百度地图 SDK v3

/ 开启方向传感器@Override// 关闭图层定位// 关闭方向传感器上面的传感器的代码,一会就会介绍~记得在AndroidManifest.xml配一个service

2401_85955090的博客 564

【ROS机器人系统】自主导航+YOLO目标检测+语音播报

完成自主导航功能,并在小车移动至指定地点的过程中,通过机器人的摄像头检测导航途中所见物体,识别出物体的种类(框选出不同物体并标注识别结果),结合科大讯飞语音合成模块对识别结果进行语音播报。..............................

南京大学软件工程硕士在读 2万+

Android 百度地图 SDK v3.0.0 (一)

转载请标明出处:http://blog.youkuaiyun.com/lmj623565791/article/details/37729091 最近公司要把百度地图集成的项目中,于是我就研究了一天百度地图的SDK,当前的版本:Android SDK v3.0.0 。 虽然百度地图网上相关代码比较多,大多可能都是比较旧的版本,且百度地图API的改动感觉也比较大,所以再此跟大家分享一下一天的劳动成功。

xu_mengmeng的专栏 641

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Android 百度地图 SDK v3.3.0 (二)--- 地图定位和图层展示

在上一篇博客中,我们成功把地图导入了我们的项目。本篇我们准备为地图添加:第一,定位功能;第二,图层展示,第三,结合方向传感器,通过旋转手机进行道路的方向确认。有了这三个功能,地图已经可以为我服务了! 效果图: 好了,可以代码,为了方便,我把所有的按钮都放到了menu菜单中。 1.在Andro

让 学习 成为一种 习惯 ( 谭祖爱 & 技术博客 ) 3274

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

百度地图集成

1.链接:http://lbsyun.baidu.com/index.php?title=androidsdk 2.申请密钥: 1.获取应用sha1:keytool -v -list -keystore keystore.jks,进入存在keystore的对应路径下并将文件名替换 3.如果地图空白并且提示:AndroidManifest.xml的application中没有meta-

Rookie的博客 406

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Android百度地图开发(一)

百度地图开发 定位和方向传感器 MyLocation

NoOneDev的博客 669
上一篇: 百度地图SDK-真正意义上的地图
下一篇: Android使用HttpURLConnection发送HTTP请求
OneLinee
博客等级 码龄10年 11粉丝 41原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值