Android FindMyPhone功能模块的实现

类似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.处理来自服务器的指令

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

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

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

时间: 2024-09-13 16:36:28

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

Android Studio分模块自动化构建实战

Android Studio分模块自动化构建实战 @author ASCE1885的 Github 简书 微博 CSDN 最近在使用Android Studio+Gradle做一个基础框架SDK项目,该框架主要实现每个app都需要的基础能力,例如网络请求,图片缓存,json解析,日志记录等等. 众所周知,AndroidStudio中应该尽量使用Module来进行模块的划分,既能达到模块解耦的目的,也能在必要的时候轻松实现分模块打包,特别是在SDK项目中.那么什么是分模块打包呢?就是我们可以根据第

Android 震动功能

主界面代码: package com.example.vibrator; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class MainActivity extends Activity { private Button

订单功能模块设计与实现

在商城项目中,之前我们介绍了购物车功能模块的实现,商品加入到购物车之后,就是到购物车结算,然后显示购物车的商品列表,点击去结算,然后到了未提交前的订单列表, 点击提交订单后,生成此订单,返回订单的订单号,付款金额,订单预计到达时间.订单系统是一个非常重要的系统,我们的移动端.PC端都需要订单系统,所以这里我们将订单系统单独作为一个服务来,留出接口供客户单来调用 今天我们来看下这个订单系统到底是如何实现的: 一.订单系统功能 订单系统主要包含哪些功能模块呢? 创建订单功能.查看订单列表.根据订单i

智点财务软件的功能模块介绍

智点财务软件由多个功能模块构成,包括:总账.工资管理.固定资产.资产负债表.损益表等.各模块间相对独立,各自具有完善和系统的功能,又有机地结合为一体. 智点财务软件是一个企业经营管理平台,用以解决不同满足各级管理者对信息化的不同要求:为高层经营管理者提供大量收益与风险的决策信息,辅助企业制定长远发展战略:为中层管理人员提供企业各个运作层面的运作状况,帮助做到各种事件的监控.发现.分析.解决.反馈等处理流程,帮助做到投入产出最优配比:为基层管理人员提供便利的作业环境,易用的操作方式实现工作岗位.工

易网通物流平台报表功能模块是怎样的?

目前,很多物流平台都能够直观的展示物流公司各个物流环节的处理结果和进度,对于异常情况能够及时呈现预警结果.但是,现有物流系统各物流环节之间状态参数并不能实时.方便传递.如第三方货代庄家.物流公司之间,各自建立自己的数据库,没有进行很好的集成,同时物流行业舱位价格等实时变化过快,无法提供移动终端的方式以方便物流角色进行业务操作,及保证客户所查看数据实时更新. 此外,货主.物流公司.第三方货代.船东等角色之间仍然停留在依靠传统纷繁的电话.邮件联系和查询,人力交流成本随着接单数量增加而成倍增加. 在物

如何通过反射实现动态功能模块加载

程序集包含模块,而模块包含类型,类型又包含成员.反射则提供了封装程序集.模块和类型的对象.您可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型.然后,可以调用类型的方法或访问其字段和属性. 下面我们将介绍如何通过不使用反射的方式和使用反射的方式加载功能模块.实现效果: 1.        WinForm 主程序 主程序我们使用Winform程序,VS2008 工具C#语言开发.包括工具栏.状态栏及TabControl控件.我们使用TabControl 作为功能模块容器

Android倒计时功能的实现(CountDownTimer)

以前编程的时候,遇到倒计时的功能时,经常自己去写,但其实Android已经帮封装好了一个倒计时类CountDownTimer,其实是将后台线程的创建和Handler队列封装成为了一个方便的类调用. 说明: CountDownTimer timer = new CountDownTimer(30000, 1000)中,第一个参数表示总时间,第二个参数表示间隔时间. 意思就是每隔一秒会回调一次方法onTick,然后30秒之后会回调onFinish方法. package com.androidcoun

在#AOS开发平台# 新增了【首选项】功能模块

在#AOS开发平台# 新增了[首选项]功能模块.缺省包含:我的个人资料维护.我的偏好设置.系统安全选项.自定义菜单.我的操作日志等功能,并提供了扩展点.在二次开发时候可以通过新增设置项按钮增加业务系统所需的和当前登录操作员有关的新开发的设置页面.

[转] 通过反射实现动态功能模块加载

原文 如何通过反射实现动态功能模块加载 程序集包含模块,而模块包含类型,类型又包含成员.反射则提供了封装程序集.模块和类型的对象.您可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型.然后,可以调用类型的方法或访问其字段和属性. 下面我们将介绍如何通过不使用反射的方式和使用反射的方式加载功能模块.实现效果: 1. WinForm 主程序 主程序我们使用Winform程序,VS2008 工具C#语言开发.包括工具栏.状态栏及TabControl控件.我们使用TabCon