获取Cell Info后,抛出EXC_BAD_ACCESS

时间:2011-12-16 10:12:17

标签: ios core-telephony

我正在使用CellStumbler来获取iPhone的小区ID,位置区域代码和其他信息。

在调用getInfo之后,我得到了一个EXC_BAD_ACCESS,我无法找出原因。这是所有未记录的私人功能,但肯定有人可以提供帮助。该问题与函数中的任何行无关,只有在运行它之后才会发生。

Cell Stumbler

我知道这不是App Store可以批准的。

  int cellcount;
_CTServerConnectionCellMonitorGetCellCount(&t1,sc,&cellcount);

printf("Cell count: %x\n",cellcount);

printf("Size = %lx\n", sizeof(struct CellInfo));

unsigned char *a=malloc(sizeof(struct CellInfo));

for(b=0;b<cellcount;b++)
{       
    _CTServerConnectionCellMonitorGetCellInfo(&t1,sc,b,a); memcpy(&cellinfo,a,sizeof(struct CellInfo));
    printf("Cell Site: %d, MNC: %d, ",b,cellinfo.servingmnc);
    printf("Location: %d, Cell ID: %d, Station: %d, ",cellinfo.location, cellinfo.cellid, cellinfo.station);
    printf("Freq: %d, RxLevel: %d, ", cellinfo.freq, cellinfo.rxlevel);
    printf("C1: %d, C2: %d\n", cellinfo.c1, cellinfo.c2);
}
if(a) free(a);

这是上面的CellStumbler项目中提供的getCellInfo函数。调用此函数后会发生错误,但不一定在此函数中,只有在运行此函数的后续效果之后才会发生错误。

1 个答案:

答案 0 :(得分:2)

我暂时解决了这个问题,删除了for循环,只运行了一次_CTServerConnectionCellMonitorGetCellInfo。