类似iPhone手机上面“查找我的iPhone”

1. 手机定位

需要考虑到国内和国外,国内使用百度地图,国外使用google地图,两种地图,属于不同的坐标系。

手机这边为了避免不同坐标系的问题,直接使用国际标准(WGS84),即:通过手机设备的GPS和网络network两种定位方式得到经纬度。

不同坐标系转化的问题,交给服务器伤头脑吧,网友有提供方法:http://blog.csdn.net/ma969070578/article/details/41013547

根据百度定位的sdk相关文档知道,它定位实现的方式考虑到GPS、WIFI和基站,方案更加成熟、完善和准确。

基站定位的实现方式是得到周围的三个基站信息(基站的lac cid 、信号强度等),计算出手机设备位于三角形的哪一个点。太复杂了,暂时不考虑这种实现方式。

当然也可以直接使用百度的sdk来完整定位功能,但是被排除掉了,因为baidu定位给出的坐标值属于百度自己的坐标系。后面在考虑使用不同地图显示的时候,就需要考虑各个坐标系之间的转化问题。

虽然网上有网友提供各个坐标系之间的转化工具类,但是其它资料上说,该各个坐标系的偏移算法都是保密的,这里很怀疑这个工具类的准确性。也简单测试了一下,有误差,不过误差不大。

通过百度定位SDK,暂时不再考虑范围。

2. 定时上传手机的经纬度

建立一个定时器,准备用alarmManager来实现。时间频率计划三分钟。

3.通过百度推送接受来自服务器的操作指令

将百度推送的SDK集成到项目中,可以完成用户在服务器网页上对手机发送的操作指令。

4.判断该经纬度是否处于国外

网上有一位网友,很牛逼的给出了方案:http://www.cnblogs.com/Aimeast/archive/2012/08/09/2629614.html

觉得使用第二种比较好一点,当然这一步的判断是在服务器上执行的。

还有另外一种方法:通过百度提供的反地理编码功能,其中可以得到country的值,判断是否==中国

5.保证后台一直处于运行状态

监听开机和网络状态发生变化的广播,当接收到这两个广播的时候,调用启动service的方法,已保证服务一直处于启动状态

防止用户手动的在设置中关闭该服务,计划请系统组的同事帮忙,将其隐藏。不确定是否能够做。

6.处理来自服务器的指令

指令的信息来自服务器的推送。

根据提前商定好的指令标识,设定具体的操作

其中响铃,可以自己实现、解锁、锁定和抹除所有数据,就需要系统组的同事协助。

Android FindMyPhone功能模块的实现的更多相关文章

  1. [译]:Xamarin.Android平台功能——位置服务

    返回索引目录 原文链接:Location Services. 译文链接:Xamarin.Android平台功能--位置服务 本部分介绍位置服务以及与如何使用位置提供商服务 Location Servi ...

  2. Android定位功能

    不说废话,直接说说实现android定位有关的API吧. 这些API都在android.location包下,一共有三个接口和八个类.它们配合使用即可实现定位功能. 三个接口: GpsStatus.L ...

  3. Android定位功能(二)

    在前文Android定位功能(一)中,已经大致介绍了一下在Android平台中,和定位功能相关的类,并举例获取了位置信息.但是前文是基于Criteria定制了一个标准,通过getBestProvide ...

  4. CTO也糊涂的常用术语:功能模块、业务架构、用户需求、文档……

    功能模块.业务架构.需求分析.用户需求.系统分析.功能设计.详细设计.文档.业务.技术--很多被随口使用的名词,其实是含糊甚至错误的. 到底含糊在哪里,错误在哪里,不仅仅是新手软件开发人员糊涂,许多入 ...

  5. 爱了,字节跳动大神最佳整理:582页Android NDK七大模块学习宝典,理论与实践

    前言 时至今日,短视频App可谓是如日中天,一片兴兴向荣.随着短视频的兴起,音视频开发也越来越受到重视,而且薪资水涨船高,以一线城市为例,音视频工程开发的薪资比Android应用层开发高出40%. 但 ...

  6. iOS开发之功能模块--高仿Boss直聘的常用语的开发

    首先上Boss直聘的功能界面截图,至于交互请读者现在Boss直聘去交互体验:     本人的公司项目要高仿Boss直聘的IM常用语的交互功能,居然花费了我前后17个小时完成,这回自己测试了很多遍,代码 ...

  7. 10天学会phpWeChat——第二天:hello world!我的第一个功能模块

    今天我们开始进入<10天学会phpWeChat>系列教程的第二天:创建我的第一个hello world! 功能模块. 1.登录后台,进入 系统设置--自定义模块,如图: 自定义模块参数说明 ...

  8. ABAP绘图功能模块概观(转)

    ABAP Graphics FM OverviewABAP绘图功能模块概观 此处仅将功能模块及范例程序列出(若要列出详细参数篇幅过大) 2 Main Graphics Demo Program: GR ...

  9. Android表情功能

    Android表情功能 标签(空格分隔): 未分类 转载自:android edittext插入表情(基于socket方式),并对文中不正确的内容进行整理和修正 [TOC] 涉及知识点: Androi ...

随机推荐

  1. asp.net个人笔记

    1.进程外session一记 配置进程外session, 在webconfig中配置<sessionState timeout="60" mode="StateSe ...

  2. javaweb学习路之一--web项目搭建

    概述: 工作闲暇时间想要自己搭建一个web项目玩玩,没想到大半天才弄了一个springMVC+mybatis的网站,简直菜的不行,以下记录所有的步骤加深印象 使用环境 1.jdk1.8 2.maven ...

  3. React Native-目前最火的前端技术?

    做为一名产品经理,你是否遇到过这样的窘境,“帮我把字体调成 16号呗,颜色变成 #FFFF00FF,老大说这里最好改一下”,作为一名 app 的开发只能无奈但心里窃喜的告诉你,“只能等下个版本了,必须 ...

  4. Canvas使用渐变之-径向渐变详解

    创建径向渐变使用 createRadialGrdient(x0,y0,r0,x1,y1,r1)​ 一共​六个参数,分别代表: 起点的圆心坐标(第一个和第二个参数), 起点园的半径(第三个参数), 终点 ...

  5. vim: 字符串替换

    :s/str1/str2/ 替换当前行第一个 str1 为 str2:s/str1/str2/g 替换当前行所有 str1 为 str2 ( 注意,  s/xx/xxx/g 语句从s开始,中间的空格视 ...

  6. BaseAdapter导致notifyDataSetChanged()无效的四个原因及处理方法

    前一段时间在做一个项目的时候遇到了一个关于BaseAdapter的notifyDataSetChanged()方法无效问题,当时在网上搜了一个解决方法,今天又遇到了一个类似的问题,我在这里做个记录,防 ...

  7. Ruby学习: 全局变量 和常量

    一.全局变量 ruby中支持全局变量,ruby中的全局变量有如下几个特点: 1)标识符以$开头标记 2)全局变量可以在程序的任何地方加以引用 3)全局变量无需提前进行变量声明.引用尚未初始化的全局变量 ...

  8. 告别IE给我们的web开发带来的困扰(使用chrome frame v8引擎)

    茶爸爸个人微信:benyzhous,公众号:cha-baba欢迎骚扰 由于客户所有机器必须使用IE6浏览器,导致我们在开发项目过程中遇到非常多的样式与性能问题,在偶然的一次使用360软件管家搜索chr ...

  9. B-树和B+树的应用:数据搜索和数据库索引

    B-树和B+树的应用:数据搜索和数据库索引  B-树 1 .B-树定义 B-树是一种平衡的多路查找树,它在文件系统中很有用. 定义:一棵m 阶的B-树,或者为空树,或为满足下列特性的m 叉树:⑴树中每 ...

  10. 【数据库摘要】5_Sql_IN

    IN 操作符 IN 操作符同意您在 WHERE 子句中查找多个值. SQL IN 语法 SELECT column_name(s) FROM table_name WHERE column_name ...