利用手机基站获取位置 您所在的位置:网站首页 gps怎么定位手机号位置 利用手机基站获取位置

利用手机基站获取位置

2023-07-20 22:04| 来源: 网络整理| 查看: 265

前一段时间,看到一个新闻,竟然光天化日,朗朗乾坤下,居然有人抢孩子,以前是拐卖,现在就开始明抢了!好可怕….

正好项目中遇到了手机基站的一些原理,那今天就在这里分享一下,现在穿戴设备这么发达,如果能有效地利用,说不定能对孩子及时的寻找,起到帮助,同时也是一大商机不是。

什么是基站:简单的说就是我们打电话能连接的信号塔,现在覆盖范围城市里基本达到了一个小区就有一个了。

那么也就是说,你跟踪的范围就是一个小区的范围之内了。

需要工具:能插手机卡的设备(小手机就可以),手机卡(能发信息)

我的实现方式:利用获得的基站信息,根据设定的合适时间发送消息给特定的人(不直接再设备上定位,因为可能没网络,当然有了你的基站位置,警察叔叔的系统很快的分析出你的位置,根据你的基站,分析出嫌疑人使用的基站,还能进行监听…)

那么先来看看效果:

电信手机展示效果 这里写图片描述

联通、移动展示效果

这里写图片描述

发送消息: 这里写图片描述

接受消息:

这里写图片描述

当然要还要知道各大运营商代码:

46000 中国移动 (GSM) 46001 中国联通 (GSM) 46002 中国移动 (TD-S) 46003 中国电信(CDMA) 46004 空(似乎是专门用来做测试的) 46005 中国电信 (CDMA) 46006 中国联通 (WCDMA) 46007 中国移动 (TD-S) 46008 46009 46010 46011 中国电信 (FDD-LTE)

到这里准备工作完成,开始代码:

一、首先获得运营商:

得到TelephonyManager

tm = (TelephonyManager) UIUtils.getContext().getSystemService(Context.TELEPHONY_SERVICE);

使用它的getNetworkOperatorName方法

tvOperator.setText(PhoneInfo.getTelephonyManager().getNetworkOperatorName());

二、获得网络:

package cn.hnshangyu.basestationdemo.utils; import android.content.Context; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.telephony.TelephonyManager; /** * 获取网络连接的工具类 */ public class IntenetUtil { //没有网络连接 public static final String NETWORN_NONE = "NONE"; //wifi连接 public static final String NETWORN_WIFI = "WIFI"; //手机网络数据连接类型 public static final String NETWORN_MOBILE = "MOBILE"; /** * 获取当前网络连接类型 * * @param context * @return */ public static String getNetworkState(Context context) { //获取系统的网络服务 ConnectivityManager connManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); //如果当前没有网络 if (null == connManager) return NETWORN_NONE; //获取当前网络类型,如果为空,返回无网络 NetworkInfo activeNetInfo = connManager.getActiveNetworkInfo(); if (activeNetInfo == null || !activeNetInfo.isAvailable()) { return NETWORN_NONE; } // 判断是不是连接的是不是wifi NetworkInfo wifiInfo = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI); if (null != wifiInfo) { NetworkInfo.State state = wifiInfo.getState(); if (null != state) if (state == NetworkInfo.State.CONNECTED || state == NetworkInfo.State.CONNECTING) { return NETWORN_WIFI; } } // 如果不是wifi,则判断当前连接的是运营商的哪种网络2g、3g、4g等 NetworkInfo networkInfo = connManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE); if (null != networkInfo) { NetworkInfo.State state = networkInfo.getState(); String strSubTypeName = networkInfo.getSubtypeName(); if (null != state) if (state == NetworkInfo.State.CONNECTED || state == NetworkInfo.State.CONNECTING) { switch (activeNetInfo.getSubtype()) { //如果是2g类型 case TelephonyManager.NETWORK_TYPE_GPRS: // 联通2g return "GPRS"; case TelephonyManager.NETWORK_TYPE_CDMA: // 电信2g return "CDMA"; case TelephonyManager.NETWORK_TYPE_EDGE: // 移动2g return "EDGE"; case TelephonyManager.NETWORK_TYPE_1xRTT: return "1xRTT"; case TelephonyManager.NETWORK_TYPE_IDEN: return "IDEN"; //如果是3g类型 case TelephonyManager.NETWORK_TYPE_EVDO_A: // 电信3g return "EVDO_A"; case TelephonyManager.NETWORK_TYPE_UMTS: return "UMTS"; case TelephonyManager.NETWORK_TYPE_EVDO_0: return "EVDO_0"; case TelephonyManager.NETWORK_TYPE_HSDPA: return "HSDPA"; case TelephonyManager.NETWORK_TYPE_HSUPA: return "HSUPA"; case TelephonyManager.NETWORK_TYPE_HSPA: return "HSPA"; case TelephonyManager.NETWORK_TYPE_EVDO_B: return "EVDO_B"; case TelephonyManager.NETWORK_TYPE_EHRPD: return "EHRPD"; case TelephonyManager.NETWORK_TYPE_HSPAP: return "IDEN"; //如果是4g类型 case TelephonyManager.NETWORK_TYPE_LTE: return "LTE"; default: //中国移动 联通 电信 三种3G制式 if (strSubTypeName.equalsIgnoreCase("TD-SCDMA")) { return "TD-SCDMA"; } else if (strSubTypeName.equalsIgnoreCase("WCDMA")) { return "WCDMA"; } else if (strSubTypeName.equalsIgnoreCase("CDMA2000")) { return "CDMA2000"; } else { return NETWORN_MOBILE; } } } } return NETWORN_NONE; } } tvNetwork.setText(IntenetUtil.getNetworkState(this));

三、获取460代码:

tm = (TelephonyManager) UIUtils.getContext().getSystemService(Context.TELEPHONY_SERVICE); networkOperator = PhoneInfo.getTelephonyManager().getNetworkOperator(); if (networkOperator.startsWith("46000") || networkOperator.startsWith("46002")) { //"中国移动"; showDatasMoeAndLink(); type = 1; } else if (networkOperator.startsWith("46001")) { //"中国联通"; showDatasMoeAndLink(); type = 1; } else if (networkOperator.startsWith("46003") || networkOperator.startsWith("46011")) {//46003电信3G ,46011电信4G //"中国电信"; showDatasTelecom(); type = 2; }

四、获得中国移动和联通的基站信息

/** * 如果是中国移动和联通 */ private void showDatasMoeAndLink() { llLacd.setVisibility(View.VISIBLE); llLach.setVisibility(View.VISIBLE); llSidd.setVisibility(View.GONE); llSidh.setVisibility(View.GONE); gcl = (GsmCellLocation) PhoneInfo.getTelephonyManager().getCellLocation(); lac = gcl.getLac(); cid = gcl.getCid(); tvLacd.setText(String.valueOf(lac)); tvLach.setText(Integer.toHexString(lac)); tvCid.setText(String.valueOf(cid)); tvCih.setText(Integer.toHexString(cid)); // mhandler.sendEmptyMessageDelayed(88, 10 * 1000); }

五、获得中国电信的基站信息

/** * 如果是中国电信 */ private void showDatasTelecom() { llLacd.setVisibility(View.GONE); llLach.setVisibility(View.GONE); llSidd.setVisibility(View.VISIBLE); llSidh.setVisibility(View.VISIBLE); ccl = (CdmaCellLocation) PhoneInfo.getTelephonyManager().getCellLocation(); sid = ccl.getSystemId(); nid = ccl.getNetworkId(); bid = ccl.getBaseStationId(); tvSidd.setText(String.valueOf(sid)); tvSidh.setText(Integer.toHexString(sid)); tvBidd.setText(String.valueOf(bid)); tvBidh.setText(Integer.toHexString(bid)); tvNidd.setText(String.valueOf(nid)); tvNidh.setText(Integer.toHexString(nid)); // mhandler.sendEmptyMessageDelayed(88, 10 * 1000); }

六、发信息:

private void sendSms() { smsManager = SmsManager.getDefault(); if (type == 1) {//是中国移动和联通 smsManager.sendTextMessage("187****8566", null, "mcc=" + mcc + ",mnc=" + mnc + ",lac=" + lac + ",cid=" + cid, null, null); } else if (type == 2) {//是中国电信 smsManager.sendTextMessage("187****8566", null, "mcc=" + mcc + ",mnc=" + mnc + ",sid=" + sid + ",nid=" + nid + ",bid=" + bid, null, null); Log.e("LogUtils","sendTextMessage,sendTextMessage,sendTextMessage"); } }

七、权限:

好了基本核心功能就是这了,当然如果需要直接定位的的可以用Google的接口,不过一般使用基站定位都用的是自己后台接口(用谷歌还不如直接用地图了,还方便….)

有什么不足望大家指出,谢谢….

demo下载地址:http://download.csdn.net/download/huangxiaoguo1/9715542



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有