Mythroad 联网流程介绍 (TCP)
初始化网络(mr_initNetwork)->创建连接(mr_socket)
->连接服务器(mr_connect)->收发数据(mr_recv,
mr_send)
->关闭连接(mr_closeSocket)->断开网络(mr_closeNetwork)
MTK账号资料管理介绍
在mtk上账号资料分为两类:
A、 GSM账号资料(电路交换方式)
B、 GPRS账号资料
每种账号一般留有10个槽位(槽位个数手机设计公司可以进行调节)在创建socket的时候,有一个参数就是指这个账号资料的序号。目前Mythroad固定使用GPRS账号的最后一个槽位.
国内账号资料管理流程
在程序初始化网络(即调用mr_initNetwork)的时候,根据不通的拨号方式(CMNET,CMWAP,默认是CMNET)对指定槽位的账号资料进行设置(不论是否已经设置过,都会进行设置)。
优点:用户不需要关心账号资料的设置
缺点:如果是运营商的对联网的账号资料进行修改的话,就会造成无法连接网络的情况出现。
手机wap账号资料的管理
在wap的菜单中有这样一个菜单:
进入这个菜单后,会把手机上有的账号资料在列表中罗列出来供用户进行选择。
新账号资料管理方案(适用国内和海外)
流程图
新增接口
1、 本地UI设置账号资料接口
2、 设置账号资料接口
3、 读取账号资料接口
4、 设置是否使用当前设置接口(默认是不使用当前设置,设置的结果只对一次VM运行起作用,重新启动VM后自动复位)
优缺点
优点:
1、 账号资料可以完全保密
2、 实现复杂度低
缺点:
1、 检索的表是预置的无法修改(添加、删除)
2、 当表中没有记录的时候需要用户来设置(增加用户使用的难度)
代码实现
国内目前的实现:
国内现在拨号流程基本如下,工具用户的参数,拨CMWAP或者CMNET。
海外:
自动模式:
根据当前的MCC/MNC查询APN的数据库,如果有匹配项就使用匹配的APN信息进行拨号,如果出海外,你还得带上mr_getAPN接口的实现。 手动模式:
通过用户选择特定的数据账号,并将其保存下来。拨号的时候使用这个账号的信息进行拨号。
MTK上CODE的参考定义
#define
MR_GET_DATA_ACCOUNT_REQ
1107 //mr_plat
#define
MR_GET_DATA_ACCOUNT
1108 //mr_platEx
#define
MR_SET_DATA_ACCOUNT
1109 //mr_platEx
#define MR_SET_DATA_ACCOUNT_USE_FLAG 1110
//mr_plat
#define MR_SET_DATA_ACCOUNT_MTK_UI 1111
// mr_plat
MR_GET_DATA_ACCOUNT_REQ
功能:发起获取数据账号的请求,在MTK上为异步方式,这个CODE需要配和MR_GET_DATA_ACCOUNT来取的数据账号的值
参数:无
返回:失败MR_FAILED,
获取过程中返回MR_WAITING,成功MR_SUCCESS
如果是异步返回的,获取成功后需要通知虚拟机,如下:
mr_event(MR_DATA_ACCOUNT_EVENT,
MR_DATA_ACCOUNT_OP_GET, ret);
下面是2个枚举值在的定义,第3个参数 MR_SUCCESS 表示成功,MR_FAILED表示失败
enum {
MR_KEY_PRESS,
/*0*/
MR_KEY_RELEASE,
/*1*/
MR_MOUSE_DOWN,
/*2*/
MR_MOUSE_UP,
/*3*/
MR_MENU_SELECT,
/*4*/
MR_MENU_RETURN,
/*5*/
MR_DIALOG_EVENT,
/*6*/
MR_SMS_INDICATION, /*7*/
MR_EVENT_EXIT,
/*8*/
MR_SMS_RESULT,
/*9*/
MR_LOCALUI_EVENT,
/*10*/
MR_OSD_EVENT,
/*11*/
MR_MOUSE_MOVE,
/*12*/
MR_ERROR_EVENT,
/*13执行异常通过这个事件来通知*/
MR_PHB_EVENT,
MR_SMS_OP_EVENT,
MR_SMS_GET_SC,
MR_DATA_ACCOUNT_EVENT,
MR_MOTION_EVENT,
};
enum
{
MR_DATA_ACCOUNT_OP_GET,
MR_DATA_ACCOUNT_OP_SET,
};
MR_GET_DATA_ACCOUNT
功能:返回由MR_GET_DATA_ACCOUNT_REQ发起获取的数据账号值
参数通过: output,
output_len参数返回类型为T_DSM_DATA_ACCOUNT
的数据账号(这个结构的内存为移植层的全局数据,不需要应用层管理)
返回:MR_SUCCESS 表示成功,MR_FAILED表示失败
typedef struct
{
uint8
authentication_type;
uint8
user_name[32];
uint8
password[32];
uint8 dns[4];
uint8 apn[100];
}T_DSM_DATA_ACCOUNT;
MR_SET_DATA_ACCOUNT
功能:设置数据账号
参数:input, input_len
为T_DSM_DATA_ACCOUNT结构类型的数据
返回:MR_SUCCESS
成功,MR_FAILED失败,MR_WAITING异步过程通过后续事件通知应用mr_event(MR_DATA_ACCOUNT_EVENT,MR_DATA_ACCOUNT_OP_SET,MR_FAILED);
前面两个参数参考MR_GET_DATA_ACCOUNT_REQ节的定义,第三个参数MR_SUCCESS表示成功,MR_FAILED表示失败。
MR_SET_DATA_ACCOUNT_USE_FLAG
功能:启用设置的数据账号
参数:0
表示使用原先的拨号流程,1,表示使用设置的数据账号
返回:成功MR_SUCCESS,
失败MR_FAILED
MR_SET_DATA_ACCOUNT_MTK_UI
功能:通过启用本地的界面显示全部可选的系统数据账号让用户选择,用户选择后,将选择的账号信息,保存到我们指定的数据账号中。
参数:无
返回:MR_SUCCESS,MR_FAILED
Copyright ?2005-20010 SKY-MOBI