6

我想以编程方式测量手机中的电话信号强度。我实际上并不关心手机或编程环境:它可以基于 android 或 windows mobile 甚至 J2ME,并且可以来自任何制造商(请不要使用 iPhone)。但是,它必须是真正的商用手机,而不是特殊的测量设备。

这个问题并不像第一眼看上去那么容易。我知道已经存在许多声称返回电话信号强度的方法。其中一些是:

  • WM6 的 SystemState.PhoneSignalStrength
  • WinCe 的 RIL_GetCellTowerInfo(返回的 RILCELLTOWERINFO 结构的 dwRxLevel 成员)
  • android.telephony.NeighboringCellInfo.getRssi() 用于安卓

上面的问题是它们只返回几个(小于 10)离散值,这意味着,例如,SystemState.PhoneSignalStrength 的返回值只能转换为(例如)-100 dbm、-90 dbm、- 80 dbm、-70 dbm 和 -60 dbm,这对我的应用程序没有用处,因为我希望有尽可能高的精度。

是否存在仅适用于一部手机的无证解决方案并不重要,如果您能告诉我一种方法,我将不胜感激。

提前致谢

4

4 回答 4

3

请查看JSR-256 Mobile Sensor API for Java ME。诺基亚 S60 第 5 版设备支持此 API。您可以使用此 API 检查网络信号强度。但是,最好先从诺基亚论坛询问它的粒度。

于 2009-12-04T15:10:51.970 回答
2

这是我为仍在寻找答案的人找到的解决方案:

一些 windows mobile HTC 手机有一个名为 fieldtest.exe 的程序,其中包含我需要的信息(可能其他手机也有,我只用特定的 HTC 进行了测试,但从谷歌搜索我了解到大多数 HTC WM 手机它) . 现场测试程序不仅具有电话的准确信号强度,而且还有大量其他非常有用的电话信息,否则无法访问。

唯一的问题是如何在进程中使用该程序的数据,因为所有值都存储在 ListView 中。

好吧,这就是我发布的另一个问题的重点。

因此,解决方案是运行 fieldtest 程序并从那里提取/窃取所需的值!

于 2010-03-31T10:17:27.737 回答
2

有一个很好的教程解释了如何获得手机测量的真实 GSM 信号试试这个教程:

http://www.firstdroid.com/2010/05/12/get-provider-gsm-signal-strength/

希望有帮助,

阿德里安。

于 2010-06-02T05:39:18.533 回答
1

在 WindowsCE 平台上,这可能很难。我工作的最后一个平台使用了西门子调制解调器,我可以直接访问并从中获取他们自己的信息。然而,自从他们上次更新固件以来,他们现在已经关闭了这个,并强迫我通过 RIL。

我猜您可能必须找到具有特定调制解调器的特定单元。但是我不知道有什么特别的。对不起。:(

于 2009-12-04T13:49:22.073 回答