请选择 进入手机版 | 继续访问电脑版
查看: 236|回复: 8

MTK如何编程取得小区cell

[复制链接]

48

主题

76

帖子

369

积分

初遇闯客

Rank: 3Rank: 3

积分
369
发表于 2018-8-1 10:55:01 | 显示全部楼层 |阅读模式
本帖最后由 遥遥無期 于 2018-8-1 11:01 编辑

教大家,如何在MTK平台上通过编程取得cell_id小区编号和LAC值??
我知道答案 本帖寻求最佳答案回答被采纳后将获得系统奖励10CKB和50U币 可以兑换精美礼品, 目前已有9人回答
回复

使用道具 举报

32

主题

37

帖子

200

积分

勇闯江湖

Rank: 2

积分
200
发表于 2018-8-1 11:01:54 | 显示全部楼层

一个Sasken的结构里面可以直接得到
回复

使用道具 举报

48

主题

76

帖子

369

积分

初遇闯客

Rank: 3Rank: 3

积分
369
 楼主| 发表于 2018-8-1 11:02:17 | 显示全部楼层
wueopjpoif 发表于 2018-8-1 11:01
一个Sasken的结构里面可以直接得到

我没有找到你说的Sasken结构,能给具体说说吗?
回复

使用道具 举报

32

主题

37

帖子

200

积分

勇闯江湖

Rank: 2

积分
200
发表于 2018-8-1 11:02:38 | 显示全部楼层
遥遥無期 发表于 2018-8-1 11:02
我没有找到你说的Sasken结构,能给具体说说吗?


layer4_context.h

typedef struct
{
   l4c_context_struct         *l4c_ptr;


} layer4_context_struct;
extern layer4_context_struct *layer4_ptr_g;        //MTK layer4 context structure, we can get LAC & CellID from it

据说有些平台不一定行,good luck
回复

使用道具 举报

48

主题

76

帖子

369

积分

初遇闯客

Rank: 3Rank: 3

积分
369
 楼主| 发表于 2018-8-1 11:03:10 | 显示全部楼层
wueopjpoif 发表于 2018-8-1 11:02
layer4_context.h

typedef struct

再请教一下,为什么我通过这个结构获取的值和功能模式下显示的值不同呢?

我通过layer4_ptr_g->l4c_ptr->hz_ptr->current_cell_id得到的cell_id值为15.
   通过layer4_ptr_g->l4c_ptr->hz_ptr->current_lac获取的lac为18 15.

而在工程模式下显示的值cell_id: 25240
                                 lac: 17 119
回复

使用道具 举报

32

主题

37

帖子

200

积分

勇闯江湖

Rank: 2

积分
200
发表于 2018-8-1 11:03:54 | 显示全部楼层
遥遥無期 发表于 2018-8-1 11:03
再请教一下,为什么我通过这个结构获取的值和功能模式下显示的值不同呢?

我通过layer4_ptr_g->l4c_ptr- ...


你的指针或者buf有问题,假如上海的话,LAC应该为6开头的四位数:比如LAC=0x187D= 6269

例: LAC=0x187D= 6269  数据库中该地域码对应:
    460;00;6269;12338;11;上海 浦东 牡丹路399弄


附件是一个PC版的在数据库中搜索LAC对应地方的包,包含:
Readme.txt (细节说明)
Cells.dat (80K的明文的数据库文件,格式如上例,网上有公开数据,添加方便)
CellPhoneLocation.exe   (可执行文件)

在手机上若放数据库到TFlash卡上,搜索40K的数据大概5秒。



一、LAC篇
  LAC实际上是区位码,相当于手机号码的前七位,提供了省-市-县的信息。是全国唯一的基站属地识别码。
移动的LAC最初为十进制4位码,现在大多采用十进制5位码。至今北京、上海、天津、广州主要采用4位码,其他省市主要采用5位码(但还有个把4位码)。
  下列为部分省、直辖市的LAC划分(以下均为移动数据):
5位
河南  14081-14803
江苏  20497-20990,21787-21857
安徽  21761-22000
山东  21249-21489,24965-25425
浙江  22222-22597
福建  22800-22990
湖北  28928-29153
湖南  29464-29601
江西  30990-31104
四川  33024-33261
贵州  34050-34176
云南  34593-35067
4位(首位)
上海  6
北京  4
  各个省又可以划分到地区,如浙江省部分地区:
宁波  22222,336-351,435,465-479,592-594,597(前几位相同)
杭州  22288-303、324,449-451,453,456-458,460-463,545-555
湖州  22310、312
嘉兴  22320-321、324、327
台州  22371-372,375,379,383,499,507,510
温州  22384-386,390-391,393-397,399,480-482,484,486,489-491,493,516-520
    也有极个别交叉的,但可以区分开。地区下面还可以分县级,大城市也可以分区域。这是营运商有计划分配LAC码的结果。
利用LAC,很容易确定你所在的省市地区和县。一般来说这种定位意义不大。唯一的好处是数据量很少,因此可以实时显示在营运商显示区,
不需作任何操作;在火车上或长途汽车上确定到什么地界了,茫茫旅途离目的地还有多远。
回复

使用道具 举报

32

主题

37

帖子

200

积分

勇闯江湖

Rank: 2

积分
200
发表于 2018-8-1 11:14:35 | 显示全部楼层
【文件名】:闯客技术论坛-CellPhoneLocation20071120(5).rar
【格 式】:rar
【大 小】:139K
【简 介】: PC版的在数据库中搜索LAC对应地方
【目 录】:
Readme.txt (细节说明)
Cells.dat (80K的明文的数据库文件,格式如上例,网上有公开数据,添加方便)
CellPhoneLocation.exe   (可执行文件)


闯客技术论坛-CellPhoneLocation20071120.rar (131.92 KB, 下载次数: 1)
回复

使用道具 举报

48

主题

76

帖子

369

积分

初遇闯客

Rank: 3Rank: 3

积分
369
 楼主| 发表于 2018-8-1 11:16:08

一大应用(来自MOTO智能机):
根据小区号,自动更改家里和办公室的手机情景模式主题等设定;

其它应用:
必须到过某些特定点(得到该地LAC或Cellid号)
组织类似寻宝比赛...
真人位置报告


======================
所有手机有本事操作AT命令的话也可以直接得到:

实例:
at+creg=2
OK
at+creg?
+CREG: 2, 1, "187D", "A561"

===================
注1: 数据库格式:
        国家代码MCC; 网络代码MNC; LAC地区码; 小区基站ID; 组别; 地址描述
        中国MCC为460; MNC网络代码: 移动为00/联通GSM为01/ 联通CDMA为03
        
注2: 数据库:
        来自MOTO Linux智能手机之应用软件(Efem手机定位)
        (文本文件Cells.dat,记事本可编辑)
        
        网上数据库: http://www.kgg.cn/        下载移动数据 下载联通数据

   
460;00;29537;56401;6;湖南 望城 附三医院D
460;00;29537;56403;6;湖南 望城 附三医院D
460;00;29537;56551;6;湖南 望城 万利大厦D
460;00;29537;56552;6;湖南 望城 万利大厦D
460;00;29537;56553;6;湖南 望城 万利大厦D
460;00;29537;56592;6;湖南 望城 望岳村D2区
460;00;29537;56593;6;湖南 望城 望岳村D2区
460;00;29537;56633;6;湖南 望城 岳麓山D
460;00;29537;56634;6;湖南 望城 岳麓山D
460;00;29537;56721;6;湖南 望城 二坊娱乐城
460;00;29537;56722;6;湖南 望城 二坊娱乐城
460;00;29537;56723;6;湖南 望城 二坊娱乐城
460;00;29537;56724;6;湖南 望城 二坊娱乐城
460;00;29537;56781;6;湖南 望城 望月湖医院D
460;00;29537;56782;6;湖南 望城 望月湖医院D
460;00;29537;56783;6;湖南 望城 望月湖医院D
460;00;29537;56871;6;湖南 望城 工大研究楼D
460;00;29537;56873;6;湖南 望城 工大研究楼D
460;00;29537;58121;6;湖南 望城 天马山2D
460;00;29537;58122;6;湖南 望城 天马山2D

32

主题

37

帖子

200

积分

勇闯江湖

Rank: 2

积分
200
发表于 2018-8-1 11:17:10 | 显示全部楼层

<DIV class=quote><B>以下是引用<I>zhgzhgzhg</I>在2008-2-2 23:00:52的发言:</B>
可以仿照工程模式的代码。如果只要获得当前服务小区的话,不用mtk改库。</DIV>
<P>
可能我的SDK代码不是很全,只在EngineerModeTracer.c里找到一些功能模式下打印输出的代码片段,输出的是一个这个c文件中一个static结构的值。</P>
<P>static mmi_rr_em_lai_info_t mmi_rr_em_lai_info;</P>
<P>但是没有找到如何设置这个值的。</P>
回复

使用道具 举报

48

主题

76

帖子

369

积分

初遇闯客

Rank: 3Rank: 3

积分
369
 楼主| 发表于 2018-8-1 11:18:00 | 显示全部楼层
学到了很多知识。

可能我的SDK不全,导致直接取layer4_ptr_g->l4c_ptr->hz_ptr值有问题。
我看见结构中这个field原本是被一个宏定义控制编译的。
typedef struct
{
    。。。
#ifdef __HOMEZONE_SUPPORT__   
   l4c_hz_context_struct *hz_ptr;                                                                                         
#endif
。。。
}l4c_context_struct;

我原来的环境是没有定义__HOMEZONE_SUPPORT__的,我是自己把这个宏定义加入到mak中重新编译的。
不知道是不是提供过来的SDK本身就不支持获取HOMEZONE,所以这个宏默认就没开。

这个全局结构在小区切换的时候会自动更新值吗??
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

快速回复 返回顶部 返回列表
  • 站内导航
  • 用户指南
  • 王国概况
  • 科技资讯
  • 小程序
  • 公众号
客服电话 :   400-830-1818 公司地址 :   深圳市南山区英唐大厦六楼
粤Copyright2018-2020 / 闯客网 版权所有 粤ICP备17106242号-1