mtk联网高级操作

我直接在真机试了这个例子,更本就连接不成功,soc_creat还正常,到了soc_connect的时候就有问题,老是返回错误码-14,有大虾是什么原因吗?


有没有先建立GPRS或CDMA?只有先连接了才有IP,才能上网,否则设备上网络是不同的,你可以用IE先试上网,它自己会连接,我写程序已经实现了

 

GPRS和CDMA连接并且正常使用Socket
因为你使用的socket是阻塞的,所以你连接后它一直等待连接反应,程序就死了,不过过一段时间超时后就不会死了

 

acount id就是MTK对各种拨号配置的一组编号
比如CMCC的cmwap 80等信息是一组 acount id =15
CU的一组是16
如果你想使用CMCC的配置上网就传15 CU的配置就传16

MTK网络是手机网络,同PC上的网络不同,手机网络包括GPRS连接和TCP连接,
  所以建立MTK的网络连接时需要首先设置好网络账号,建立GPRS连接,在GPRS连接建立后,
  再去建立TCP连接。具体流程如下:
1、设置网络账号的接入点:
在MTK的网络中分wifi、GPRS和GSM三种,我们在上网时使用最多的是GPRS方式。一般情况下,GSM和GPRS分别各有10个账号,在网络->数据账号资料里面可以看到。
GSM的10个账号资料对应的id是从0-9,GPRS的10个账号资料对应的id是从10-19。每个账号资料里面最关键的是接入点,通常情况下,接入点是CMWAP或CMNET。代表
是使用cmwap还是cmnet联网方式。这两种联网方式的区别在于,使用cmwap需要经过中国移动的代理服务器10.0.0.172,才能连接到最终的服务器上去。而cmnet则
直接连接到最终要访问的服务器。账号id在调用soc_create时会用到,由此就决定了用的是哪个接入点,什么方式进行联网。设置接入点可以有两种方式:
1)选择一个已经设置好接入点的账号id,直接拿来使用。
2)通过异步的发消息PRT_MMI_PS_SET_GPRS_DATA_ACCOUNT_REQ方式设置你想要用的账号资料的接入点。

2、生成应用id
appid = cbm_register_app_id((U16) MAIN_MENU_FUNANDGAMES_TEXT, GetRootTitleIcon(MAIN_MENU_FUNANDGAMES_ICON));

如果需要,将GPRS状态设置为保持,这样在每次关闭socket描述符后,不会
关闭GPRS连接,这样在下一次建立TCP连接时,会节省建立GPRS连接的时间,
否则,每次调用soc_connect的时候会自动去建立GPRS连接,这样会花掉3-6秒。
cbm_hold_bearer(MOD_MMI, appid);

3、转换账号id,在MTK联网时,需要用到一个账号id,如果是双卡的手机,
在调用soc_create之前,账户id需要做转换。
nwk_account = cbm_encode_data_account_id(nwk_account, sim_id, appid, KAL_FALSE);

4、创建socket,设置成异步非阻塞的方式,建立TCP连接,设置回调函数,发送和接收数据。

5、关闭socket

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值