android 基站id获取,C++ 获取CELL-ID(基站编号)
转的,不知道LZ是否看过
利用COM口来获取CELLID,并不保证所有的设备都支持。
测试平台:
VS2005 + WM 6.0
开发语言:
C++
typedef
struct
{
char CountryCode[12];
char AreaCode[4];
char NetworkCode[4];
char CellID[4];
} TCREG_DATA;
获取基站信息:
复制到剪贴板 C/C++代码
void Get_Cellid(void)
{
char m_sTemp[12] = {0};
strcat(m_sTemp,"COM");
for(int i = 9; i > 0; -- i)
{
char ch1;
_itoa(i,&ch1,10);
strcat(m_sTemp,&ch1);
strcat(m_sTemp,":");
TCREG_DATA* pData = (TCREG_DATA*)GetCREG(m_sTemp);
if(!pData)
continue;
char szNum1[8] = {0};
char szNum2[8] = {0};
strcpy(szNum1,pData->AreaCode);
strcpy(szNum2,pData->CellID);
int iLac = (int)strtol(szNum1,NULL,16);
int iId = (int)strtol(szNum2,NULL,16);
if (iLac && iId)
{
sprintf(m_sCell.LAC,"%06d", iLac );
sprintf(m_sCell.ID,"%06d", iId );
break;
}
}
}
获取串口:
复制到剪贴板 C/C++代码
char* GetCREG( char * comPort )
{
HANDLE hCom;
int bufpos;
DCB dcb;
COMMTIMEOUTS to;
DWORD nWritten;
DWORD event;
DWORD nRead;
static
char outbuf[20], buf[256];
BYTE comdevcmd[2]= {0x84, 0x00};
WCHAR m_sCom[12] = {0};
mbstowcs(m_sCom,comPort,strlen(comPort));
hCom= CreateFile( m_sCom ,GENERIC_READ|GENERIC_WRITE,0,0,OPEN_EXISTING,0,0);
if (hCom==NULL || hCom==INVALID_HANDLE_VALUE)
{
hCom= NULL;
return NULL;
}
if (!GetCommState(hCom, &dcb))
{
return
"ERROR:GetCommState Failed";
}
dcb.BaudRate= CBR_115200;
dcb.ByteSize= 8;
dcb.fParity= false;
dcb.StopBits= ONESTOPBIT;
if (!SetCommState(hCom, &dcb))
{
return
"ERROR:SetCommState Failed";
}
EscapeCommFunction(hCom, SETDTR);
EscapeCommFunction(hCom, SETRTS);
GetCommTimeouts(hCom, &to);
to.ReadIntervalTimeout= 0;
to.ReadTotalTimeoutConstant= 200;
to.ReadTotalTimeoutMultiplier= 0;
to.WriteTotalTimeoutConstant= 20000;
to.WriteTotalTimeoutMultiplier= 0;
SetCommTimeouts(hCom, &to);
if (!SetCommMask(hCom, EV_RXCHAR))
{
return
"-8";
}
DWORD rildevresult=0,nReturned=0;
if (!DeviceIoControl (hCom,0xAAAA5679L, comdevcmd, sizeof(comdevcmd),0,0,0,0))
{
return
"-9";
}
bufpos = 0;
strcpy(outbuf,"AT+creg=2\r");
if (!WriteFile(hCom, outbuf, 10, &nWritten, NULL))
{
return
"-10";
}
if (nWritten != 10)
{
return
"-11";
}
if (!WaitCommEvent(hCom, &event, NULL))
{
return
"-12";
}
while(1)
{
if (!ReadFile(hCom, buf+bufpos, 256 - bufpos, &nRead, NULL))
{
return
"-13";
}
if (nRead == 0)
break;
bufpos += nRead;
if (bufpos >= 256)
break;
}
strcpy(outbuf,"AT+creg?\r");
if (!WriteFile(hCom, outbuf, 9, &nWritten, NULL))
{
return
"-14";
}
if (nWritten != 9)
{
return
"-15";
}
if (!WaitCommEvent(hCom, &event, NULL))
{
return
"-16";
}
while(1)
{
if (!ReadFile(hCom, buf+bufpos, 256 - bufpos, &nRead, NULL))
{
return
"-17";
}
if (nRead == 0)
break;
bufpos += nRead;
if (bufpos >= 256)
break;
}
puts(buf);
rildevresult = 0;
if (!EscapeCommFunction(hCom, CLRDTR))
{
return
"-4";
}
if (hCom!=NULL)
{
CloseHandle(hCom);
hCom= NULL;
}
char* cregResponse = strpbrk( buf, "CREG\0" );
return cregResponse;
}
android 基站id获取,C++ 获取CELL-ID(基站编号)相关推荐
- eCGI是PLMN+ECI ,ECI (28 Bits) = eNB ID(20 Bits) + Cell ID(8 Bits)(逻辑小区id,范围0~255)
https://www.cnblogs.com/sddai/p/6244538.html LTE中的各种ID含义 原文链接:http://www.hropt.com/ask/?q-7128.html ...
- android 获取应用的资源id和uri
2019独角兽企业重金招聘Python工程师标准>>> 在某些应用中,为了实现应用apk资源放入重复利用,或者使用反射得到本应用的资源,需要使用反射反射方式获得,但Resources ...
- Android NFC读MifareClassic卡获取卡片ID 类型 扇区 存储空间
1.首先要在AndroidManifest.xml中声明如下配置信息: 为了能够使用Android手机的NFC功能,需要在Manifest文件中添加相应的权限: 详细配置请参考-->Androi ...
- android 巧妙利用反射机制获取控件id,避免大量冗杂的findviewbyid和butterknife注解
android 巧妙利用反射机制获取控件id,避免大量冗杂的findviewbyid和butterknife注解 一.反射机制概述 Java 反射机制是在运行状态中,对于任意一个类,都能够获得这个类的 ...
- Android - 获取移动端设备ID标识,分情况
目前需求:未登录的用户(游客)需要与客服实时通讯,要怎么区分用户消息? 思路:获取游客的设备ID,以此为标识传给服务器来查询/发送信息,一设备为一用户. 那设备ID是什么?怎么获取呢? 设备ID,就是 ...
- android获取控件的id(标识符)-根据控件id获取对应的值或控件名字-动态获取R.string的值
更多其他页面-自定义View-实用功能合集:点击查看 项目中需要动态获取资源R.string的值,记录一下解决方案. demo链接: link. 直接先上个示例,下面再有详细解说: @Override ...
- Android有文件读写权限,无法读写文件 open failed: EACCES (Permission denied) 获取设备唯一不变id 所有文件读写权限按钮无法打开
最近有个需求,要获取设备唯一id,Android一直没有什么完善的方案获取设备唯一不变的id,我就结合了几种方案组成了一下: 1. 首先获取IMEI; IMEI获取失败后 2. 获取SN序列号,序列号 ...
- 如何获取应用宝APP ID
二百二维码支持绑定应用宝ID后,android 扫码下载后,微信直接下载APP,不打开应用宝页面,非常方便APP进行推广 那如何获取应用宝APP ID呢, 请参考下面的教程 一, 打开http: ...
- RK3288获取摄像头的Sensor ID【原创】
平台信息: 内核:linux3.0.68 系统:android/android6.0 平台:RK3288 作者:庄泽彬(欢迎转载,请注明作者) 邮箱:2760715357@qq.com 说明:通过I ...
- 【淘宝商品】获取淘宝商品ID、获取淘宝商品详情
心态快爆炸,获取商品ID已经困扰好几天了,网上搜寻的办法也总是达不到想要的效果,要么没有权限,要么获取不到Location.. 附上研究结果工具包(俺就喜欢各种工具包,简单快捷,有其他见解的同志欢迎骚 ...
最新文章
- GPT3后可考虑的方向-知识推理与决策任务及多模态的信息处理
- bzoj 2730: [HNOI2012]矿场搭建——tarjan求点双
- 基于视觉的在线地图:一种Transformer网络方法
- Linux系统文件和目录管理
- 数据结构之查找二叉树
- C++ Primer 5th笔记(chap 15 OOP)继承的构造函数容器
- mysql有那么多存储引擎_MySQL的多存储引擎架构
- 【机器学习】线性回归之Normal Equation(矩阵求导与线性代数视角)
- 五分钟了解数据库事务隔离
- WildFly 8.0.0.Alpha1的发布和一些历史
- o_rdonly_O_RDWR, O_CREAT等open函数标志位在哪里定义? | 学步园
- JSF 源代码赏析之Lifecycle
- Android中GsonFormat的安装及使用
- 对比会声会影与剪映哪个制作转场效果更专业
- web 前端(轮番插件)
- sql server cross/outer apply 用法
- 微信小程序发送验证码短信SDK及文档
- 【模糊神经网络】基于simulink的模糊神经网络控制器设计
- 英语情景对话计算机专业,工作有关情景对话英语
- 服务器 无线键鼠,几台电脑一套键鼠 不光省钱还方便
热门文章
- CWnd SetCapture ReleaseCapture GetCapture
- java 如何调用 wsdl_java 调用wsdl的方式
- java WebService接口调用WSDL详细解析
- 测试真相 | 软件测试真的只是“点,点,点......”吗?
- java float的精度_java中的float和double的精度问题
- protocol buffer 使用之 .proto 定义规则
- 关于找不到指定的模块,异常来自HRESULT:0x8007007E的解决方法
- 【你还在烦恼你的实验报告吗?】C语言结课实验——学生成绩管理系统
- mysql详细安装步骤图解
- 用Java语言生成数学图形