手机变身IoT设备之地理位置上报

简介: 写在前面继上一篇手机秒变IoT设备?——巧妙利用阿里云物联网平台, 作者发现自己吹了个牛,五行代码根本做不到。作者阉割了一些代码才勉强可以实现,看一下效果:前情回顾温故而知新一、上一篇文章介绍的是一个叫Simulator的东西,有两个构造方法:传入productKey(平台创建)、de...

写在前面

继上一篇手机秒变IoT设备?——巧妙利用阿里云物联网平台, 作者发现自己吹了个牛,五行代码根本做不到。作者阉割了一些代码才勉强可以实现,看一下效果:
image

前情回顾

温故而知新

一、上一篇文章介绍的是一个叫Simulator的东西,有两个构造方法:

  1. 传入productKey(平台创建)、deviceName(自己填写),该方法会自动为你在productKey下创建一个设备并在本地记录三元组
  2. 传入productKey、deviceName、deviceSecret,该方法会直接使用此三元组

二、调用simulator的connect方法可以凭借三元组连接物联网平台,并可以设置一个受到消息时的回调方法
三、调用uplink方法进行数据上报,我们上报的是一个地理位置属性,可以通过android的API获取经纬度

开始操作

8说了,开冲

image

一、环境搭建
  1. 下载android studio,傻瓜式操作: 下一步,下一步,直到最终创建好了一个安卓项目。作者创建的是空的android项目
  2. 激活开发者选项(作者的手机是mix2,设置里我的设备>全部参数 连续点击MIUI版本)
  3. 进入设置>更多设置 找到开发者选项, 打开开发者选项、usb调试、usb安装
  4. usb线连接手机和电脑,运行第一步创建的app,应该能发现Connected Devices里有你的手机了,如果没有的话你也可以Create New Virtual Device。傻瓜式操作,下一步到底。
    image
二、编写代码

image
目录结构如上图所示
将上一篇文章中的代码移植过来,另外android相关的代码写了四个类。
详细代码将扔到github或者进群联系我~

  1. LocationUtils: 网上抄的一个调用android获取经纬度的工具类,提供两种方式1)网络定位 2)gps定位
  2. LocationService:安卓的Service框架,可以后台运行。在这里进行一些初始化和地理位置定时上报
  3. CoordinateTransformUtil:网上抄的一个坐标系转换工具,安卓获取的经纬度好像四wgs84的坐标系,需要转换一下国测局02坐标系
  4. MainActivity: android的Activity, 简单理解为一个页面吧
  5. 重要改动(阉割) Simulator去掉了pk,dn的构造方法,也就是说不支持自动创建设备了。原因是自动创建设备依赖com.aliyun.api.gateway:sdk-core-java:1.1.0,通过HttpClient调用阿里云Iot的ApiGateway的http接口创建设备。HttpClient在高API Level的android sdk中已经废弃了,但是还站着坑(墙裂吐槽)
    image

image
image
程序运行起来之后会使用到INSTANCE字段,而默认加载的是android.jar中的AllowHostnameVerifier类,报错找不到static的INSTANCE字段【笋干爆炸】,总之作者花了好长时间都解决不了这个问题,干脆手起刀落先把自动创建设备的功能阉了。以后有时间一定弄一版功能健全的。

最后

app凭借三元组变身IoT设备,打开app,可以看到经纬度开始上报,设备上线了~。后续根据二维数据分析产品可以进行一些设备的查找,轨迹查看,围栏操作等(即将上线)。
轨迹大致是这样
image

最后的最后

楼主更新太慢了,产品更新也太慢了。因为实在是太缺前端了,楼主最近在学react。。。请各位原谅~~

目录
相关文章
|
4月前
|
传感器 物联网 网络架构
ENS、IoT设备、X86、ARM
ENS(Enterprise Name Service)是企业名称服务,是一种为物联网设备提供命名和寻址服务的技术。ENS通过为物联网设备分配唯一的名称和地址,使得物联网设备可以被网络中的其他设备和服务所识别和访问。 IoT设备(Internet of Things device)是连接到互联网的物理设备,可以收集和共享数据,用于监测、控制和优化各种业务流程和操作。IoT设备包括各种传感器、执行器、网关和路由器等。
76 2
|
4月前
|
网络协议 物联网 5G
K3S 系列文章 -5G IoT 网关设备 POD 访问报错 DNS 'i/o timeout' 分析与解决
K3S 系列文章 -5G IoT 网关设备 POD 访问报错 DNS 'i/o timeout' 分析与解决
|
17天前
|
机器学习/深度学习 人工智能 算法
物联网(IoT)就像是一个大型派对,无数的设备都在欢快地交流着信息
【9月更文挑战第4天】在这个万物互联的时代,物联网(IoT)犹如一场盛大的派对,各类设备欢聚一堂。然而,如何让这些设备互相理解并协同工作呢?这就需要机器学习与人工智能的助力。例如,智能空调通过学习你的使用习惯来调节温度,使你更加舒适;智能安防系统则能识别异常行为并及时报警,保障家庭安全。此外,智能农业、交通等领域也因机器学习和人工智能的应用变得更加高效。下面通过一个简单的温度预测代码示例,展示机器学习在物联网中的实际应用,让我们一起感受其强大潜力。
20 0
|
1月前
|
存储 监控 安全
使用IoT设备优化家庭生活的技术探索
【8月更文挑战第4天】IoT设备以其智能化、便捷性和高效性,正逐步成为现代家庭不可或缺的一部分。从智能照明到智能安防,从智能恒温器到智能厨房,再到智能语音助手,这些设备不仅优化了我们的家庭生活,还提升了我们的生活质量和幸福感。随着技术的不断进步和应用场景的不断拓展,我们有理由相信,未来的智能家居将会更加智能、更加人性化,为我们的生活带来更多惊喜和便利。
|
27天前
|
存储 SQL JSON
【Azure IoT Hub】从设备端如何向IOT发送海量数据,可以使用从设备到IoT连接的直接传输吗?如何把IoT Hub中的数据存储到Azure Storage中?
【Azure IoT Hub】从设备端如何向IOT发送海量数据,可以使用从设备到IoT连接的直接传输吗?如何把IoT Hub中的数据存储到Azure Storage中?
|
3月前
|
传感器 安全 物联网
物联网(IoT)设备的硬件选型与集成技术博文
【6月更文挑战第28天】物联网设备硬件选型与集成聚焦关键要素:功能匹配、性能稳定性、兼容扩展及成本效益。嵌入式系统、通信协议、数据处理和安全性技术确保集成效果,支撑高效、智能的IoT系统,驱动家居、城市与工业自动化变革。
|
4月前
|
安全 物联网 测试技术
构建未来:Android与IoT设备的无缝交互深入探索软件自动化测试的未来趋势
【5月更文挑战第30天】在物联网(IoT)技术快速发展的当下,Android系统因其开放性和广泛的用户基础成为了连接智能设备的首选平台。本文将探讨如何通过现代Android开发技术实现智能手机与IoT设备的高效、稳定连接,并分析其中的挑战和解决方案。我们将深入挖掘Android系统的底层通信机制,提出创新的交互模式,并通过实例演示如何在Android应用中集成IoT控制功能,旨在为开发者提供一套可行的指导方案,促进IoT生态系统的进一步发展。
|
3月前
|
JavaScript
技术心得:根据不同访问设备跳转到PC页面或手机页面
技术心得:根据不同访问设备跳转到PC页面或手机页面
30 0
|
4月前
|
存储 Android开发
采用SAMKeychain钥匙串存储设备唯一标示与何种情况下同一个手机它存储的值会变化
采用SAMKeychain钥匙串存储设备唯一标示与何种情况下同一个手机它存储的值会变化
70 1
|
4月前
|
编解码 测试技术 API
模拟手机设备:使用 Playwright 实现移动端自动化测试
本文介绍了使用Python的Playwright库进行移动设备模拟和自动化测试的方法。通过Playwright,开发者能模拟不同设备的硬件和软件特性,如屏幕尺寸、用户代理,以确保网站在移动设备上的表现。示例代码展示了如何模拟iPhone X并访问网站,之后可在此基础上编写测试代码以检验响应式布局和交互功能。Playwright的设备参数注册表支持多种设备,简化了移动端自动化测试的流程。
226 1