Code example for NetworkInfo

Methods: getSubtypeName, getTypeName, isConnected

0
     */ 
    private String getConnectionInfo(NetworkInfo info) {
        String type = TYPE_NONE;
        if (null != info) {
            // 如果没有连接到任何网络,则设置type为none 
            if (!info.isConnected()) {
                type = TYPE_NONE;
            } 
            else { 
                type = getType(info);
            } 
        } 
        return type;
    } 
 
    /** 
     * 生成一个新的 plugin result,并将其传回JS. 
     * 
     * @param type  网络连接类型,设置到xFace.network.connection.type 
     */ 
    private void sendUpdate(String type) {
        if(null != mCallbackCtx) {
            XExtensionResult result = new XExtensionResult(XExtensionResult.Status.OK, type);
            result.setKeepCallback(true);
            mCallbackCtx.sendExtensionResult(result);
        } 
        // TODO: 发送消息给所有的plugin 
        // 例如 XExtensionManager.postMessage("networkconnection", type); 
        // 每个 plugin 使用 onMessage() 来响应这个消息. 
    } 
 
    /** 
     * 确定并获得网络连接的类型. 
     * 
     * @param info 当前活跃的网络信息 
     * @return     当前正在使用的移动网络类型 
     */ 
    private String getType(NetworkInfo info) {
        if (null != info) {
            String type = info.getTypeName();
 
            if (type.toLowerCase().equals(WIFI)) {
                return TYPE_WIFI;
            } 
            else if (type.toLowerCase().equals(MOBILE)) {
                type = info.getSubtypeName();
                if (type.toLowerCase().equals(GSM) ||
                        type.toLowerCase().equals(GPRS) ||
                        type.toLowerCase().equals(EDGE)) {
                    return TYPE_2G;
                }