Android基站定位——通过手机信号获取基站信息(一)

Android基站定位详解 本文主要介绍android基站定位的基本思路,介绍了一些TelephonyManager中用到方法。最后简单说明google定位服务与android提供参数之间的联系。 阅读详情
AI摘要

本文详细介绍了如何使用Android设备获取基站信息进行定位。包括通过TelephonyManager获取MCC、MNC、LAC、CID等基站参数,并展示了实际代码实现。同时,文章提供了获取邻区基站信息的方法。

转载请标明出处:http://blog.youkuaiyun.com/android_ls/article/details/8672442

基站定位原理:通过手机信号获取基站信息,然后调用第三方公开的根据基站信息查找基站的经纬度值,想要具体地址信息的再根据经纬度值获取具体的地址信息。

一、通过手机信号获取基站信息

 通过TelephonyManager 获取lac:mcc:mnc:cell-id(基站信息)的解释:
 MCC,Mobile Country Code,移动国家代码(中国的为460);
 MNC,Mobile Network Code,移动网络号码(中国移动为0,中国联通为1,中国电信为2); 
 LAC,Location Area Code,位置区域码;
 CID,Cell Identity,基站编号;
 BSSS,Base station signal strength,基站信号强度。

具体实现代码如下:

package com.easipass.test;

import java.util.List;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.telephony.NeighboringCellInfo;
import android.telephony.TelephonyManager;
import android.telephony.cdma.CdmaCellLocation;
import android.telephony.gsm.GsmCellLocation;
import android.util.Log;
import android.view.View;

/**
 * 功能描述:通过手机信号获取基站信息
 * # 通过TelephonyManager 获取lac:mcc:mnc:cell-id
 * # MCC,Mobile Country Code,移动国家代码(中国的为460);
 * # MNC,Mobile Network Code,移动网络号码(中国移动为0,中国联通为1,中国电信为2); 
 * # LAC,Location Area Code,位置区域码;
 * # CID,Cell Identity,基站编号;
 * # BSSS,Base station signal strength,基站信号强度。
 * @author android_ls
 */
public class GSMCellLocationActivity extends Activity {

    private static final String TAG = "GSMCellLocationActivity";
    
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        // 获取基站信息
        findViewById(R.id.button1).setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {

                TelephonyManager mTelephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);

                // 返回值MCC + MNC
                String operator = mTelephonyManager.getNetworkOperator();
                int mcc = Integer.parseInt(operator.substring(0, 3));
                int mnc = Integer.parseInt(operator.substring(3));

                // 中国移动和中国联通获取LAC、CID的方式
                GsmCellLocation location = (GsmCellLocation) mTelephonyManager.getCellLocation();
                int lac = location.getLac();
                int cellId = location.getCid();

                Log.i(TAG, " MCC = " + mcc + "\t MNC = " + mnc + "\t LAC = " + lac + "\t CID = " + cellId);

                // 中国电信获取LAC、CID的方式
                /*CdmaCellLocation location1 = (CdmaCellLocation) mTelephonyManager.getCellLocation();
                lac = location1.getNetworkId();
                cellId = location1.getBaseStationId();
                cellId /= 16;*/
                
                // 获取邻区基站信息
                List<NeighboringCellInfo> infos = mTelephonyManager.getNeighboringCellInfo();
                StringBuffer sb = new StringBuffer("总数 : " + infos.size() + "\n");
                for (NeighboringCellInfo info1 : infos) { // 根据邻区总数进行循环
                    sb.append(" LAC : " + info1.getLac()); // 取出当前邻区的LAC
                    sb.append(" CID : " + info1.getCid()); // 取出当前邻区的CID
                    sb.append(" BSSS : " + (-113 + 2 * info1.getRssi()) + "\n"); // 获取邻区基站信号强度
                }

                Log.i(TAG, " 获取邻区基站信息:" + sb.toString());

            }
        });

    }

}

在AndroidManifest.xml添加获取位置信息的权限:

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

点击“获取基站信息”的按钮后,Logcat的日志输出如下:

1、中国联通:


2、中国移动:

关于定位部分请查看: Android基站定位——单基站定位(二)

Android获取基站坐标代码示例 以上代码中,我们创建了一个名为CellTowerLocationUtil的工具类,构造函数中传入了Context对象,用于获取TelephonyManager实例。在该方法中,我们首先判断手机的类型是否为GSM(2G网络),如果是GSM网络,则获取当前基站的Cell ID(CID)和Location Area Code(LAC)信息,并将其添加到StringBuilder中。请注意,为了使示例代码正常工作,您需要在AndroidManifest.xml中添加相应的权限,并在合适的位置调用相关代码。 阅读详情

相关推荐

emir分析RC corner如何选择

power analysis阶段 RC corner的选择

weixin_61954252的博客 3592

android显示wifi信号强度以及周边信号(源代码)

先把activity_main.xml文件代码贴出来.TextView充满屏幕<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_paren

DengNice的专栏 1万+

揭秘大型语言模型:从神经元到思维透明的奇妙旅程

这篇博客带你走进大型语言模型的内部世界,从神经元的小任务,到功能向量的团队合作,再到层间的协作和思维的透明化。掌握这些知识,能让你在开发中更高效地优化AI,在研究中更深入地探索模型的奥秘。建议多动手实践,把这些理论变成自己的能力!

数据与算法架构提升之路专栏 1520

手机位置定位

通过LAC(Location Area Code,位置区域码)和CID(Cell Identity,基站编号,是个16位的数据(范围是0到65535)可以查询手机接入的基站的位置,从而初步确定手机用户的位置。 获取自己手机的LAC和CID: Android 获取方法:Android: 拨号*##4636##进入手机信息工程模式后查看 iphone获取方法:iPhone:拨号3001#12345#*进入FieldTest 点击Serving Cell info–>LAC=Tracking Area Co

m1287578441的博客 1万+

Centos7.6下安装Zabbix6

一、

Overmaster博客 1904

旋转矩阵推导

推导前提: 坐标使用右手坐标系,角度逆时针旋转为正。 绕X轴旋转角度为 俯仰角 即Pitch 绕Y轴旋转角度为 偏航角 即Yaw(Head) 绕Z轴旋转角度为 翻滚角 即Roll 一、平面二维坐标点的旋转 如右图所示,根据三角函数关系,可以列出向量OP与OP’的坐标表示形式: x = |OP|•cosα x′ = |OP|•cos(α+β) y = |OP|•sinα y′ = |OP|•sin(α+β) 将P′(x′,y′)表达式展开: x′ =

suixinger_lmh的随笔 1384

免费手机号定位神器:一键查询归属地精准定位

想要快速了解陌生来电的归属地?location-to-phone-number这个开源工具能帮你实现手机号码的精准定位查询。无论你是个人用户还是企业开发者,这个免费工具都能提供高效的号码归属地识别服务,支持中国三大运营商的所有11位手机号码。 ## 📍 工具核心功能速览 location-to-phone-number项目基于ASP.NET框架开发,提供了直观的用户界面和稳定的定位服务。主要

gitblog_00413的博客 1531

IAR许可证Generation 18代际不匹配问题解析与解决

IAR Embedded Workbench 的许可证机制采用‘代际(Generation)’模型,而非简单版本号匹配——这是一种基于数字签名算法、加密协议和硬件绑定策略演进的授权安全体系。Generation 18 是 v9.30 及以上版本强制要求的许可代际标准,对应 ECDSA 签名与增强型硬件指纹校验,旨在提升防破解能力与平台适配性。当旧版许可证(如 Generation 16/17)被用于新 IDE 时,启动器会在本地完成代际校验并直接拦截,导致‘The generation feature is

weixin_34203832的博客 344

手机号码定位技术:5分钟快速掌握location-to-phone-number开源工具

你是否想过,只需一个手机号码,就能在地图上精准找到对方的位置?location-to-phone-number正是这样一个神奇的开源工具,它能将任意中国大陆手机号码快速转换为精确的地理位置,并通过直观的地图界面进行可视化展示。这款手机号码定位工具专为中国大陆手机号码设计,无论你是普通用户还是开发者,都能轻松实现电话号码定位功能,无需复杂的技术背景,一键操作即可完成位置查询。 ## 📍 为什么你

gitblog_00095的博客 587

【报错】(pycharm运行程序)OSError: [WinError 1114] 动态链接库(DLL)初始化例程失败。 Error loading

1 报错 OSError: [WinError 1114] 动态链接库(DLL)初始化例程失败。 Error loading 2 分析原因 通过 activate Distance 进行自己创建的 Distance 虚拟环境中,输入python会显示环境中python的版本信息,再依次import,显然不会报错。 这是因为在Anaconda的环境下有支持 import torch 的 dll,而在PyCharm中使用的是自己创建的新环境,还缺少相应支持的dll,仅需在PyCharm中配置环境变量。.

静谧、淡雅 8622

Qt图形几何之QRect详解:从基础操作到高级功能全解析

本文全面介绍了Qt框架中的QRect类,详细解析了其核心功能和使用方法。主要内容包括:1)QRect的基本概念与多种构造函数;2)矩形属性获取和状态判断方法;3)几何操作函数(移动、调整大小等);4)几何关系判断(包含、相交等);5)坐标变换和边距处理;6)实用功能与QRectF转换;7)综合应用示例(图形界面、碰撞检测、布局管理);8)性能优化建议和常见陷阱。通过丰富的代码示例,展示了QRect在Qt图形编程中的实际应用,帮助开发者掌握矩形处理的各项操作技巧,提升图形界面开发效率。

专注现代C++实战,从核心语法到高性能编程,助力开发者深入掌握系统级编程精髓。 117

java lte cellid 如何获取_Android基站定位——通过手机信号获取基站信息(一)

基站定位原理:通过手机信号获取基站信息,然后调用第三方公开的根据基站信息查找基站的经纬度值,想要具体地址信息的再根据经纬度值获取具体的地址信息。一、通过手机信号获取基站信息通过TelephonyManager 获取lac:mcc:mnc:cell-id(基站信息)的解释:MCC,Mobile Country Code,移动国家代码(中国的为460);MNC,Mobile Network Code,...

weixin_39602891的博客 654

K8S搭建(centos)四、安装K8S

每个人都有惰性,但不断学习是好好生活的根本,共勉!

感谢阅读 2646

ym——Android从零开始(34)(基站、wifi、GPS定位)(新)

基站、wifi、GPS定位 基站定位:误差大 Wifi定位:是网段定位 GPS:精准 基站定位 //基站定位 --》 信号塔 --》 打电话  --》 TelelphoneManager    public void cellLocation(View v){            TelephonyManager tm =

陈宇明 3340

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

获取对方手机基站号_通过手机信号获取基站信息—基站定位详解

基站定位原理:通过手机信号获取基站信息,然后调用第三方公开的根据基站信息查找基站的经纬度值,想要具体地址信息的再根据经纬度值获取具体的地址信息。一、通过手机信号获取基站信息 通过TelephonyManager 获取lac:mcc:mnc:cell-id(基站信息)的解释: MCC,Mobile Country Code,移动国家代码(中国的为460); MNC,Mobile Network Co...

weixin_33962326的博客 1万+

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Android基站定位——通过手机信号获取基站信息

基站定位原理:通过手机信号获取基站信息,然后调用第三方公开的根据基站信息查找基站的经纬度值,想要具体地址信息的再根据经纬度值获取具体的地址信息。 一、通过手机信号获取基站信息  通过TelephonyManager 获取lac:mcc:mnc:cell-id(基站信息)的解释:  MCC,Mobile Country Code,移动国家代码(中国的为460);  MNC,Mobile Ne...

mawei7510的博客 1万+

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

tp5.0 根据经纬度 获取附近信息_通过手机信号获取基站信息—基站定位详解

基站定位原理:通过手机信号获取基站信息,然后调用第三方公开的根据基站信息查找基站的经纬度值,想要具体地址信息的再根据经纬度值获取具体的地址信息。一、通过手机信号获取基站信息通过TelephonyManager 获取lac:mcc:mnc:cell-id(基站信息)的解释:MCC,Mobile Country Code,移动国家代码(中国的为460);MNC,Mobile Network ...

weixin_39520149的博客 987
上一篇: Android基站定位——单基站定位(二)
下一篇: Android基站定位——三基站(多基站)定位(三)
android_ls
博客等级 码龄16年 662粉丝 87原创
评论 10
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值