`
fortunate179
  • 浏览: 8818 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

通过基站,wifi 获取手机位置

阅读更多
  潜水,换名字,免得被人认出来

最近需要对手机进行定位,可是如果用gps的话,室内的话获取不到,获取速度也是个问题.
so,使用基站获取,或者使用wifi获取是个不错的途径(精确度稍微差了点,不过可以接受).
  采用如上两种方式可以很方便的获取,只需要向google发送基站信息就可以了.
地址是www.google.com/loc/json如果想返回xml格式将json替换为xml.
更详细情况可以看
http://code.google.com/p/gears/wiki/GeolocationAPI

手机的网络类型包括gsm,cdma,wcdma,wifi,四种方式.gsm,cdma这两种类型我已经测试通过了,另外两中因为不需要,所以我也没有测试,如果有兴趣可以自己测试

里面有请求的格式已经请求字段的说明.具体代码网上搜索一大把.
此处大概贴出测试代码,经测试还是不错的阿
HttpClient client = new DefaultHttpClient();
/** 采用POST方法 */
HttpPost post = new HttpPost("http://www.google.com/loc/json");

JSONObject holder = new JSONObject();
holder.put("version", "1.1.0");
holder.put("host", "maps.google.com");
holder.put("address_language", "zh_CN");
holder.put("request_address", true);
holder.put("radio_type", cell.getType());

JSONObject tower = new JSONObject();
JSONArray towerarray = new JSONArray();
towerarray.add(tower);
if ("gsm".equals(cell.getType())) {
// gsm
tower.put("cell_id", cell.getCID());
tower.put("location_area_code", cell.getLAC());

tower.put("mobile_country_code", cell.getMCC());
tower.put("mobile_network_code", cell.getMNC());
holder.put("cell_towers", towerarray);
} else if ("cdma".equals(cell.getType())) {
// cdma
tower.put("cell_id", cell.getBid());
tower.put("location_area_code", cell.getNid());

tower.put("mobile_country_code", cell.getMCC());
tower.put("mobile_network_code", cell.getSid());
holder.put("cell_towers", towerarray);
} else if ("wcdma".equals(cell.getType())) {
// wcdma
// holder.put("cell_towers", towerarray);
} else if ("wifi".equals(cell.getType())) {
// wifi
// holder.put("wifi_towers", towerarray);
}

HttpEntity entity = new StringEntity(holder.toJSONString());
post.setEntity(entity);

/** 发出POST数据并获取返回数据 */
HttpResponse response = client.execute(post);
HttpEntity responseEntity = response.getEntity();
BufferedReader buffReader = new BufferedReader(new InputStreamReader(
responseEntity.getContent()));
StringBuffer strBuff = new StringBuffer();
String result = null;
while ((result = buffReader.readLine()) != null) {
strBuff.append(result);
System.out.println(strBuff);
}

下面的是单元测试的代码:
Cell cell = new Cell();
// gsm
// cell.setCID("39990");
// cell.setLAC("4303");
// cell.setMCC("460");
// cell.setMNC("0");
// cell.setType("gsm");

// cdma
cell = new Cell();
cell.setSid("13824");// mnc
cell.setNid("2");// lac
cell.setBid("30737");// cid
cell.setMCC("460");
cell.setType("cdma");
分享到:
评论

相关推荐

    android 基于基站,apn,gps,wifi,network 根据不同手机sim卡获取经纬度

    NULL 博文链接:https://104zz.iteye.com/blog/1680860

    在Android里完美实现基站和WIFI定位

    众所周知的,在OPhone和大部分国产的Android定制机里不支持最简单实用的基站和WIFI定位,只能使用速度慢而耗电的GPS定位,但OPhone和华为/中兴生产的一些Android定制机却占据了一定的市场,因此导致了很多使用了定位...

    iOS-OC-获取WiFi信息

    iOS-OC-获取WiFi信息 http://blog.csdn.net/u014220518/article/details/51509692

    Android获取当前位置的经纬度数据

    现在有这么一个需求:开启一个Service服务,获取当前...Android手机获取当前位置的方式:GPS定位,WIFI定位,基站定位,当前Demo使用GPS卫星定位,在LocationTool中返回Location、LocationManager两者对象,通过Loca

    Android 关于设备状态和操作的API

    Android 关于设备状态和操作的API。 获取总大小 获取可用大小 获取SD卡的总大小 获取SD卡可用大小 获取总内存大小 获取可用内存大小 获取系统版本 安装客户端 获取FilesDir目录 ...是否是wifi连接状态 ...获取手机IMSI

    几种室内定位技术优劣势比较:UWB、蓝牙、RFID、WIFI

    WIFI定位对位置地图的工作量比较大,WIFI定位是获取相对坐标,就是手机相对与WIFI基站或AP的坐标,WIFI基站或者AP变动后都需要对地图进行修正。再次,WIFI定位的缺陷是WIFI基站或AP的质量不稳定,导致定位的质量无法...

    基于基站定位的android jar包

    android.permission.READ_PHONE_STATE - 获取基站信息及手机标识信息 android.permission.INTERNET - 访问网络 android.permission.ACCESS_NETWORK_STATE - 检查网络可用性及获取网络信息 android.permission.CHANGE...

    baidu LBS android SDK

    和基站定位类似,这种方式是通过获取当前所用的wifi的一些信息,然后访问网络上的定位服务以获得经纬度坐标。因为它和基站定位其实都需要使用网络,所以在Android也统称为Network方式。 最后需要解释一点的是AGPS...

    手机参数诊断

    gps定位,APN设置,当前电量,获取手机中心号码,呼叫转移,内存容量及占用率,移动数据开关,wifi开关,基站位置,限信号发射功率及噪音干扰比,信号接受强度,mac地址,BSSID,手机软件列表,CGI,手机MSISDN,...

    在iOS App中实现地理位置定位的基本方法解析

    比如:获取当前经纬度,获取当前位置信息等等。 其定位有3种方式: 1,GPS,最精确的定位方式 2,蜂窝基站三角定位,这种定位在信号基站比较秘籍的城市比较准确。 3,Wifi,这种方式貌似是通过网络运营商的数据库...

    Android最新资料以及源码

    如题,如果gps设备没有获取到gps信息,则通过wifi以及基站获取信息(需要联网)。 8、Android2.2天气预报程序源码+开发文档 共10个目标文件,读取中央气象台的天气预报API得到天气数据,由此扩展出Android天气预报...

    三基同创协议 定位平台系统

    ●可接入GPS/北斗/基站LBS/WIFI多定位模式,可对智能手机定位 ●海量终端运营,功能强大、成熟稳定 ●支持高德、谷歌等多种全球地图 ●提供API接口,可用于其它系统调用 ●支持多国语言,全球大客户均...

    老人智能手环方案可行性研究报告(综合版).docx

    可以达到比较精准的定位效果,已经实现GPS卫星+LBS基站的双重定位,蓝牙感应是标准配置,无须多言,WIFI定位的老人智能手环目前还比较少,家人通过手机APP端,可实时快速定位老人的位置。 3、电子栅栏:设定老人所在...

    大数据与智慧交通.docx

    基站定位则是利用运营商的基站对移动终端的距离测算来确定位置的,不需要终端具有GPS定位能力,适用范围更广。此外,运营商的WiFi网络在市区内覆盖越来越广,利用WiFi能够在小范围内实现更为精确的定位。运营商的...

    兰大计算机安全技术离线作业答案.docx

    (2)除了使用钓鱼网站获取个人信息,犯罪分子还会利用免费WIFI窃取个人信息。一个WIFI的安全性主要取决于它的架设者是谁,如果是骗子或者是黑客架设了一个免费WIFI,用户一旦接入,所有互联网的数据都可以被黑客...

Global site tag (gtag.js) - Google Analytics