SKYENGINE API  参考手册返回目录  

 

MTK平台账号资料管理流程



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

返回目录