类似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上传文件的三种基本方法

    ASP.NET依托.net framework类库,封装了大量的功能,使得上传文件非常简单,主要有以下三种基本方法. 方法一:用Web控件FileUpload,上传到网站根目录. Test.aspx关 ...

  2. android studio 安装与环境搭建

    转摘自:http://blog.csdn.net/zhanghefu/article/details/9286123 第一章   andriod studio 安装与环境搭建 一.Android St ...

  3. PHP学习笔记9-生成图片

    用PHP代码在网页上生成图片 <?php /** * Created by PhpStorm. * User: Administrator * Date: 2015/6/29 * Time: 2 ...

  4. 如何正确的在java web配置数据池

    在tomcat context.xml中配置数据 <Context reloadable="true"> <!-- Default set of monitore ...

  5. 隐藏APK在Launcher中的启动图标 android开发教程

    隐藏APK在Launcher中的启动图标: APK的AndroidManifest.xml文件的主Activity中删除 intent-filter 中的 <category android:n ...

  6. Linux上MongoDB的安装与配置

    长话短说,一共有两种方法.(我随便选了一个发行版Mint) 一.apt-get方法 官网上说的很清楚: http://docs.mongodb.org/manual/tutorial/install- ...

  7. Uva 1103 Ancient Messages

    大致思路是DFS: 1. 每个图案所包含的白色连通块数量不一: Ankh : 1 ;  Wedjat : 3  ; Djed : 5   ;   Scarab : 4 ; Was : 0  ;  Ak ...

  8. 数学之路(3)-机器学习(3)-机器学习算法-SVM[9]

    我们应用SVM的非线性分类功能对手写数字进行识别,我们在这应用poly做为非线性核 svm = mlpy.LibSvm(svm_type='c_svc', kernel_type='poly',gam ...

  9. android 中的 ViewPager+ Fragment

    android的Viewpager 的各种经常的用法,朋友问我要过,所以就稍微总结一下, ViewPager + Fragment 经常用到  代码是从   actionbarsherlock 中提取 ...

  10. Android图像篇

    Android的渲染分为2D渲染和3D渲染两种,当中2D渲染的引擎为Skia.3D渲染的引擎是OpenGL ES.眼下.Android支持OpenGL ES1.0和OpenGL ES 2.0两种标准. ...