当前位置:   article > 正文

【Android组合解决方案】MacroDroid+移动云盘打造自己的防丢神器_macrodroid 发送邮件

macrodroid 发送邮件

目录

前言

一、防丢神器做些什么?

二、选型过程

功能点1:采集端实时采集位置信息并静默上传/发送

功能点2:收取位置信息

功能点3:云盘备份

功能点4:接收端解析位置信息

三、实现说明

采集端MacroDroid:

网盘:

接收端MacroDroid:

总结


【Android组合解决方案】MacroDroid+移动云盘打造自己的防丢神器


前言

大家有没有遇到过这种情况:老人不会用手机共享位置?手机忘了放在哪里,而且还没电了?在这样的情况下,怎样掌握尽可能多的信息去寻找?手机厂家提供的查找手机应用在这些场景是否能满足需要?第三方的查找应用又是否放心?

所以打造自己的防丢神器还是有一些必要,本文将对低代码实现自制防丢神器做一些探索。


一、防丢神器做些什么?

1、采集端:实时采集位置信息并后台静默传到云上。

2、云存储:保存位置信息,并提供下载。

3、接收端:收取位置信息,并提供查看功能,可查看当前实时的位置,也可以查看历史位置。

二、选型过程

要低代码实现这么一套系统,首先要选择合适的已有的应用作为基础,通过尽可能少的改造,实现整套解决方案。

功能点1:采集端实时采集位置信息并静默上传/发送

MacroDroid原本已经提供分享位置功能,并提供了多种输出机制:

 但是:

短信:费钱,不适合长时间使用,不考虑;

twitter:国内不可用,不考虑;

电子邮件:软件可能有bug,实际不可用,邮件发不出来。如果这个功能是好的,就根本都不需要后面那些折腾了;

变量:最后选择了这种方式,把取到的经纬度信息保存到变量中,供之后的实现使用。

功能点2:收取位置信息

收取位置信息,考虑了以下途径:

1、邮件:MacroDroid本身的发邮件功能不可用,发不出邮件,考虑了使用MacroDroid调用某个邮件客户端的API来实现静默发送,但是找了一圈,发现并没有哪个邮件客户端支持这样干;

2、即时信息:QQ、微信?找了一下,也没有提供这种API;

3、接收端搭建web服务器,提供API供采集端调用:可行是可行,但加上内网穿透,这几项的工作量太大,太折腾,还是先考虑工作量小一点的办法;

4、云笔记:调用云笔记API,每条位置信息追加一条云笔记:搜了一下,只有网易有道云笔记提供API,但使用API有些门槛,也比较折腾,先考虑工作量小一点的办法;

5、用网盘/云存储中转位置信息,接收端从网盘/云存储获取:这个打通的工作量相对小一些,只要使用网盘的自动备份功能,满足这些条件:a、网盘允许使用流量备份;b、位置信息被允许备份。所以最终选择了这个方案。

功能点3:云盘备份

满足流量备份的云盘,考察了一圈,只有中国移动云盘了;但这个云盘的备份只支持图片和音乐文件,所以需要考虑使用图片或音乐文件搭载位置信息了。我这里就使用png文件来搭载,这种方法看起来很奇怪,但确实是出于无奈。

功能点4:接收端解析位置信息

接收端在收到位置信息后,需要很方便的打开地图,看到定位,最好就是拿到文件之后,直接点击就可以.所以考虑使用高德地图的URI API:

把URI写入到文件中,直接跳转。接收端拿到文件后,把后缀名改成html 就可以了。

三、实现说明

采集端MacroDroid:

1、触发条件

 使用固定时间间隔,可以按照自己的需要来配置,我这里为了调试方便,设置得短一点,1分钟:

2、动作

1)调用脚本,初始化png文件,写入时间字段,生成第一段文件名

 初始化脚本before.sh代码如下:

  1. #!/bin/sh
  2. #以时间作为文件名,不带后缀,避免过早被备份到云端
  3. synctime=`date +%Y%m%d%H%M%S`
  4. filename="time"$synctime
  5. #把时间写入png文件,确保每个png文件都是唯一的
  6. echo "<html><!--PNG"$synctime"-->" >../DCIM/${filename}
  7. #文件名输出给MacroDroid
  8. echo ${filename}
  9. #文件名保存到文本
  10. echo ${filename} > filename.txt

说明:

为了能被识别成图片,需要生成的文件中有“PNG” 

需要写入<html>标签,原因见选型过程的功能点4

写入时间:其实也可以使用其他的随机值,是为了确保每个png文件都是唯一的

分段生成文件名:准备把经纬度信息写入到文件名,方便从文件名就能大致看到位置有变化。而经纬度信息由MacroDroid来写入。

2、 获取经纬度,并保存到变量

但是这里取的经纬度信息的排列顺序是纬度,经度,和主流的地图提供商的顺序是反的,所以需要调换一下顺序,换成经度,纬度:

 3、地图URI写入到文件,实现跳转

 4、生成第二段文件名,也就是把经纬度信息加到文件名:

 5、给文件名加.png后缀,让文件被网盘最终识别为图片文件,被自动备份:

 加png后缀的脚本:

  1. #!/bin/sh
  2. while read line
  3. do
  4. mv ../DCIM/$line ../DCIM/$line".png"
  5. done < filename2.txt

网盘:

登录中国移动云盘,开启自动备份即可,可能需要按提示开启省电白名单和开启后台运行权限:

接收端MacroDroid:

从中国移动云盘下载的是png文件,考虑定时转换成html文件:

触发条件仍然是按固定时间间隔:

动作:

定时把位置文件的后缀名加上.html:

 加html后缀的脚本:

  1. #!/bin/sh
  2. for file in `ls ./time*location*.png`
  3. do
  4. mv $file $file".html"
  5. done

至此,配置就结束了。

接收端从云盘下载位置文件之后,等待后缀名变成html,点击就可以看到定位了:

 文件内容是这样的:

下载最新的文件,就可以看到实时位置;

下载历史文件,就可以看到历史位置,可以用来分析路线和轨迹,这个功能这次就没有做了,之后会了解一下。

效果演示请参考视频。


总结

这样一整套做下来,不需要新安装什么应用,位置信息这种个人敏感信息由自己处理,不用担心泄露。而且最重要的是代码量很小很可控,工作量也可控。这次用到的MacroDroid宏和shell脚本已打包上传,下载地址:【Android组合解决方案】MacroDroid+移动云盘打造自己的防丢神器 用到的宏和脚本 ,如有需要可自取。如有疑问或建议,欢迎联系我交流。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/218734
推荐阅读
相关标签
  

闽ICP备14008679号