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

这个问题并不像初看起来那样容易。我知道,已经有许多方法声称可以返回电话信号强度。其中一些
是:

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

  • 上面的问题是,它们仅返回几个(小于10)离散值,例如,SystemState.PhoneSignalStrength的返回值只能转换为(例如)-100 dbm,-90 dbm,- 80 dbm,-70 dbm和-60 dbm,这对我的应用程序无用,因为我想尽可能地提高精度。

    如果您能告诉我一种我将不胜感激的方法,那么是否有一个仅在一部手机上可用的未公开说明的解决方案也没关系。

    提前致谢

    最佳答案

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

    10-08 13:48