手机变身IoT设备之地理位置上报
写在前面
继上一篇手机秒变IoT设备?——巧妙利用阿里云物联网平台, 作者发现自己吹了个牛,五行代码根本做不到。作者阉割了一些代码才勉强可以实现,看一下效果:
前情回顾
温故而知新
一、上一篇文章介绍的是一个叫Simulator的东西,有两个构造方法:
- 传入productKey(平台创建)、deviceName(自己填写),该方法会自动为你在productKey下创建一个设备并在本地记录三元组
- 传入productKey、deviceName、deviceSecret,该方法会直接使用此三元组
二、调用simulator的connect方法可以凭借三元组连接物联网平台,并可以设置一个受到消息时的回调方法
三、调用uplink方法进行数据上报,我们上报的是一个地理位置属性,可以通过android的API获取经纬度
开始操作
8说了,开冲
一、环境搭建
- 下载android studio,傻瓜式操作: 下一步,下一步,直到最终创建好了一个安卓项目。作者创建的是空的android项目
- 激活开发者选项(作者的手机是mix2,设置里我的设备>全部参数 连续点击MIUI版本)
- 进入设置>更多设置 找到开发者选项, 打开开发者选项、usb调试、usb安装
- usb线连接手机和电脑,运行第一步创建的app,应该能发现Connected Devices里有你的手机了,如果没有的话你也可以Create New Virtual Device。傻瓜式操作,下一步到底。
二、编写代码
目录结构如上图所示
将上一篇文章中的代码移植过来,另外android相关的代码写了四个类。
详细代码将扔到github或者进群联系我~
- LocationUtils: 网上抄的一个调用android获取经纬度的工具类,提供两种方式1)网络定位 2)gps定位
- LocationService:安卓的Service框架,可以后台运行。在这里进行一些初始化和地理位置定时上报
- CoordinateTransformUtil:网上抄的一个坐标系转换工具,安卓获取的经纬度好像四wgs84的坐标系,需要转换一下国测局02坐标系
- MainActivity: android的Activity, 简单理解为一个页面吧
- 重要改动(阉割) Simulator去掉了pk,dn的构造方法,也就是说不支持自动创建设备了。原因是自动创建设备依赖com.aliyun.api.gateway:sdk-core-java:1.1.0,通过HttpClient调用阿里云Iot的ApiGateway的http接口创建设备。HttpClient在高API Level的android sdk中已经废弃了,但是还站着坑(墙裂吐槽)
程序运行起来之后会使用到INSTANCE字段,而默认加载的是android.jar中的AllowHostnameVerifier类,报错找不到static的INSTANCE字段【笋干爆炸】,总之作者花了好长时间都解决不了这个问题,干脆手起刀落先把自动创建设备的功能阉了。以后有时间一定弄一版功能健全的。
最后
app凭借三元组变身IoT设备,打开app,可以看到经纬度开始上报,设备上线了~。后续根据二维数据分析产品可以进行一些设备的查找,轨迹查看,围栏操作等(即将上线)。
轨迹大致是这样
最后的最后
楼主更新太慢了,产品更新也太慢了。因为实在是太缺前端了,楼主最近在学react。。。请各位原谅~~
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
【实时+排重】摆脱渠道统计刷量作弊行为
如今的渠道统计不仅要看精准度,更要看数据的真实性。 对App的推广业务而言,渠道监测和统计是必不可少的环节,不论以什么形式开展推广,终究都要具体落实到App的安装量、激活量等指标上。但在如今数据刷量和作假行为横行的背景下,许多渠道获取来的流量质量都含有水分,这对大规模的地推和广告营销的开展是相当不利的。 另一方面,大规模商务推广可能涉及上千万个小渠道,我们不可能按照常规的打包方式进行统计,这样做人工成本太高,误差率大。一般都要选择第三方统计工具来统计相关数据,现在选择统计工具不仅要看精准度,更要看能为数据带来多少真实性。 openinstall 携带参数安装的渠道统计技术,除了能精准统计用户【安装量、激活量、留存率、付费率】等行为数据,还能生成独立报表、实现【免费排重】和【数据实时更新】,排除相同设备的重复下载,及时避免用户重复点击、恶意刷量和作弊作假等行为。 此外,openinstall 采用渠道链接代替渠道包的方式进行统计,线上线下广告投放或地推活动仅需各自分配一个渠道链接或二维码即可,同时兼容Android/ iOS系统,不用再为 Android多渠道打包以及 iOS无法多渠道统...
- 下一篇
短视频APP开发,前辈告诫我一定要选择开源源码
开放源代码(开源源码)指的是该源码的软件著作权所有者将其所持有的原始码公开,允许大众使用、修改发行的软件或设计体。 可能有朋友会觉得“开源源码”这一名词与自己无关,是程序员才会在意的,其实不是,我们常用的安卓手机,它的系统“安卓”就是现在影响力最大的开源源码编写的原生软件之一,如果安卓不开源,现在我们所有的手机,恐怕不会像现在这样物美价廉。 开源源码对短视频APP开发者意味着什么 对于程序员而言,源码开源与不开源的最大区别在于,你是孤身一人在奋斗,还是与世界各地的优秀开发者紧密联系在一起,如果你使用的源码是开源源码,那么在你遇到问题时,你会有无数小伙伴可以一起交流沟通,你遇到的所有问题他们都遇到过,你可以在他们的帖子中寻找问题解决方法而不用被困难打击到焦头烂额。 开源源码的BUG通常会比不开源的源码BUG少,因为有世界各地的程序员的共同努力,开源源码的BUG会被不断发现和解决。可以说,流行的开源源码是经过大众检验的。 短视频APP开发常用的开源源码是什么 Linux 无疑是开源源码里最成功的一个,搭建短视频APP的操作系统时,我们通常会选择使用它来作为操作系统,除此之外,短视频APP系...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
推荐阅读
最新文章
- 设置Eclipse缩进为4个空格,增强代码规范
- Mario游戏-低调大师作品
- MySQL8.0.19开启GTID主从同步CentOS8
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS8编译安装MySQL8.0.19
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS关闭SELinux安全模块