在Windows Mobile的手机上面, RIL提供了访问Radio模块的接口, 下面以一个简单的示例说明如何在C#中通过RIL获得基站信息.
第一步. 定义必要的数据结构和回调函数
1. 包含基站信息的RILCELLTOWERINFO类
2.用于异步返回RIL调用结果的回调函数RILRESULTCALLBACK
3.在RIL主动发出notify的时候回调的提醒函数RILNOTIFYCALLBACK
注意:这个提醒函数后面不会用到,但它是作为必要的Native函数的参数,在pinvoke的时候是不可缺少的
第二步. 通过pinvoke引用必要的RIL Native函数
第三步. 通过RIL_GetCellTowerInfo获取基站信息
1.初始化一个RIL的实例并返回它的Handle
2.定义回调函数
3.调用RIL_GetCellTowerInfo并释放当前RIL实例的handle
结果与分析:
以下是在samsungi718+上的测试结果:
-rilCellTowerInfo :
需要注意的是这里的CellTowerInfo在各个机型上面的实现程度不一样,文中提到的RIL相关函数严格来说在Windows Mobile 上面都不是必须被实现的,使用时需考虑到这一点。