1

我创建了以下两种方法来可靠地建立连接以建立数据连接。到目前为止,我在与用户测试这种方法时没有遇到任何问题。

我很想得到一些关于这种方法的社区反馈,并让我知道 buildConnectionString() 中是否有任何内容。请看下面的代码:

private static String buildConnectionString()
{

    //The Device is a simultaor --> TCP
    if (DeviceInfo.isSimulator())
        return ";deviceside=true;ConnectionTimeout=20000";

    String st = "";

    //A carrier is providing us with the data service
    if ((CoverageInfo.getCoverageStatus() & CoverageInfo.COVERAGE_CARRIER) == CoverageInfo.COVERAGE_CARRIER)
    {

        // blackberry internet service
        ServiceRecord rec = getBIBSRecord();//Apply for BIS access to get info about BIS recordset
        if (rec != null)//couldn't find the right record
            st = "[THIS CONNECTION STRING IS REMOVED, PLEASE APPLY FOR BIS ACCESS TO GET THIS STRING]";
        else if(GetWap2().length() > 0)
            st = GetWap2();
        else
            st = ";deviceside=true";// let the phone try to do the work

    }
    else if ((CoverageInfo.getCoverageStatus() & CoverageInfo.COVERAGE_MDS) == CoverageInfo.COVERAGE_MDS)
        st = ";deviceside=false";// use the clients blackberry enterprise server
    else
        st = ";deviceside=true";// let the phone do the work if it can

    return st + ";ConnectionTimeout=45000";
}

public static String GetWap2() {
    String wap2Postfix = null;
    final ServiceBook sb = ServiceBook.getSB();
    final ServiceRecord[] records = sb.findRecordsByCid("WPTCP");

    for (int i = 0; i < records.length; i++) {
        // Search through all service records to find the valid non Wi-Fi
        // WAP 2.0 Gateway Service Record.
        if (records[i].isValid() && !records[i].isDisabled()
                && records[i].getUid() != null
                && records[i].getUid().length() != 0
                && records[i].getUid().toLowerCase().indexOf("wifi") == -1
                && records[i].getUid().toLowerCase().indexOf("mms") == -1) {
            wap2Postfix = ";ConnectionUID=" + records[i].getUid();
            break;
        }//endif
    }//end for
    return wap2Postfix;
}// end wap postfix

可能需要考虑的问题:

  • 如果存在 BIS 字符串(找到记录集),它是否总是有效(除了被公司网络阻止)?
  • 如果存在 WAP2 字符串(找到记录集),它是否总是有效(除了被公司网络阻止)?
  • 我应该先检查 MDS 支持而不是运营商支持吗?
  • 除了运营商阻止连接的极端情况之外,上述方法是否有效?

让我知道!

4

1 回答 1

0

检查此代码: http: //developerlife.com/tutorials/ ?p=884

于 2009-12-14T10:00:37.007 回答