1

我正在尝试建立与以下 url 的连接:

" http://local.yahooapis.com/LocalSearchService/V3/localSearch?appid=0KOmkJ7V34Hvfo6oPV4YJaKmTz69b_UMMhOyBex5v24Gnyr3t4lrN26HBjwbfT.khg--&query=pepsi&latitude=37.79581&longitude=-122.38008&results=5 "

问题是,当我尝试使用 WAP2 与上述 url 建立连接时,我得到的连接为 null,另一方面,当我在 WIFI 上建立连接时,我能够建立连接并获得正确的响应。

附加:

";ConnectionUID=WAP2Trans" 到上面的 url 不起作用。(将连接设为空)

尽管

附加

";interface=wifi" 到上面的 url 有效。

我获取 ConnectionUID 的逻辑是:

ServiceBook sb = ServiceBook.getSB();
   net.rim.device.api.servicebook.ServiceRecord[] records = 
      sb.findRecordsByCid("WPTCP");
   String uid = null;
 /*System.out.println("*****************Records are :" + records);
   System.out.println("*****************Records length :" + ecords.length);*/
   for(int i=0; i < records.length; i++) {
      if (records[i].isValid() && !records[i].isDisabled()) {
         if (records[i].getUid() != null && records[i].getUid().length() != 0) {
            if ((records[i].getCid().toLowerCase().indexOf("wptcp") != -1) && 
               records[i].getUid().toLowerCase().indexOf("wap2") !=- 1 &&
               (records[i].getUid().toLowerCase().indexOf("wifi") == -1) &&
               (records[i].getUid().toLowerCase().indexOf("mms") == -1)) {
               uid = records[i].getUid();
               break;
            }
         }
      }
   }
   if (uid != null) {
      url = url +";ConnectionUID=" + uid;
   }
4

3 回答 3

2

尝试这个

url = url +";deviceside=true;ConnectionUID=" +uid;
于 2010-01-30T15:05:28.557 回答
1

你不应该试试

records[i].getUid().toLowerCase().indexOf("wap2") != -1 &&

代替

records[i].getUid().toLowerCase().indexOf("wap2") !=- 1 &&

检查 -1 而不是 =- 1

让我知道这个是否奏效

于 2010-02-09T21:33:39.827 回答
1

我认为是因为这个条件: (records[i].getCid().toLowerCase().indexOf("wptcp") != -1)

您之前是通过 WPTCP 过滤的: records = sb.findRecordsByCid("WPTCP");

所以我猜循环中的所有记录都会有 Cid 到 WPTCP

于 2011-05-10T16:40:16.633 回答