各位,我现在想用VC写一个程序来判别手机用的是CDMA或者GPRS,然后建立连接.
请问程序里面怎么判别手机用的是CDMA还是GPRS?谢谢
有手机可以同时用CDMA和GPRS吗?
不能,所以不需要判断!
带宽、频率完全不同,楼主可能是有接收仪器,还有协议,信令都不一样,获得数据后分析一下就知道了。
晕,,这个问题你想得出,就应该 能解决,,用AT指令 ,看返回
谢谢各位,因为以前都是做底层的,没接触过这方面的,不懂AT指令,还请楼上各位再指点,谢谢
还有,AT指令该怎么发?通过程序可以发吗?还是要通过串口?发哪个指令,谢谢
首先你要明白CDMA和GPRS是两回事,GPRS只是GSM的数据业务的一种。CDMA和GSM才是对等的
通过外部程序是无法区分的,但是通过AT检测模块版本和型号,可以判断出已知的模块是CDMA还是GSM的。
建立数据连接对不同模块来说也有不同方式,GPRS连接的建立方式比较规范,一般都按照3GPP来做,但是CDMA相对
来说,AT指令实现得并不那么规范,很多厂家都实现自定义的AT。
你其实该首先了解一下通信技术的背景,而不是马上就想做,光CDMA就有很多种,窄带的CDMA IS95, CDMA 1X,升级宽带的CDMA2000,GSM升级后又分WCDMA,WCDMA HSDPA,WCDMA HSUPA,TD-SCDMA。即使是仪器,也不可能全部区分出来。
可以使用RIL_GetCurrentSystemType:
Value Description
RIL_SYSTEMTYPE_NONE
No Networks in Coverage.
RIL_SYSTEMTYPE_IS95A
IS-95A network support (Low Packet, or Circuit Switched Service).
RIL_SYSTEMTYPE_IS95B
IS-95B network support.
RIL_SYSTEMTYPE_1XRTTPACKET
CDMA-2000 Rev A (1xRTT) network support.
RIL_SYSTEMTYPE_GSM
GSM network support.
RIL_SYSTEMTYPE_GPRS
GPRS support.
RIL_SYSTEMTYPE_EDGE
GSM EDGE network support.
RIL_SYSTEMTYPE_1XEVDOPACKET
CDMA (1xEVDO) network support.
RIL_SYSTEMTYPE_1XEVDVPACKET
CDMA (1xEVDV) network support.
RIL_SYSTEMTYPE_UMTS
UMTS network support.
RIL_SYSTEMTYPE_HSDPA
HSDPA support.
如果用RAS拨号,其实就是一些函数参数值不一样的。
谢谢楼上各位的指点,我想先写两个连接拨号程序,一个GPRS,一个CDMA,是用RAS拨号,但手头一点资料都没有,也没写过,各位请指点一下,或者有相关资料请给个链接,谢谢!!有模板就更好了...呵呵..谢谢先
我这里倒是有RAS拨号连接的程序,不过没有你说的那个判断GPRS和CDMA的功能,你要的话我可以把这个类给你
谢谢jiahan1314 ,麻烦你发一份拨号连接的程序给我,邮箱xyj8303@yahoo.com.cn
判断那部分我另想办法,想到了到时再把方法帖出来,谢谢!
引用: 引用 10 楼 jiahan1314 的回复:
我这里倒是有RAS拨号连接的程序,不过没有你说的那个判断GPRS和CDMA的功能,你要的话我可以把这个类给你
兄弟有没有在wince 5.0下建立拨号连接的代码啊?
gprs的rasentry和devconfig不会设置啊。
我用的手机是CDMA的,操作系统是WindowsMobile 5.0,不过我的拨号以后可以连接Ftp服务器,但是浏览网页有问题,我是从《EVC高级编程及应用开发》里面的实例里找的
我刚用了多普达的手机,GPRS的,按照你给的那个demo里面那样调用,拨号连不上,"拨号失败",请问你里面是怎么调用的?谢谢
拨号在mobile的帮助文档里就有代码
搜一下“Starting a RAS Connection”
谢谢,mobile的文档在哪?我没装那个,只有wince的,而且我的程序是要能在wince和mobile里跑的
那你去微软网站的msdn上搜吧。
提问的时候注意说明使用的是wince还是mobile。两者的操作区别很大的。