2011-09-21 36 views
7

Tôi đã phát triển một ứng dụng cho các thiết bị blackberry. Ứng dụng này hoạt động tốt nếu nó sử dụng internet thông qua nhà cung cấp dịch vụ dữ liệu.Kiểm tra điều kiện wifi trong ứng dụng Blackberry

Tôi có BB 9550 và tôi muốn sử dụng ứng dụng của mình bằng wifi. Tôi đã thử rất nhiều nhưng tôi không thể có được câu trả lời thích hợp để kiểm tra tình trạng wifi.

Cách chúng tôi có thể phân biệt để chạy ứng dụng của chúng tôi cho nhà cung cấp dịch vụ wifi hoặc dữ liệu?

Trả lời

10

Để kiểm tra wifi được kết nối hay không, phương pháp sau sẽ giúp bạn.

public static boolean isWifiConnected() 
    { 
     try 
     { 
      if (RadioInfo.getSignalLevel(RadioInfo.WAF_WLAN) != RadioInfo.LEVEL_NO_COVERAGE) 
      { 
       return true; 
      } 
     } 
     catch(Exception e) 
     { 
      System.out.println("Exception during get WiFi status"); 
     } 
     return false; 
    } 

nếu wifi không được kết nối, các phương pháp sau sẽ giúp thêm dịch vụ dữ liệu.

public static String getConnParam(){ 
     String connectionParameters = ""; 
     if (WLANInfo.getWLANState() == WLANInfo.WLAN_STATE_CONNECTED) { 
     // Connected to a WiFi access point 
     connectionParameters = ";interface=wifi"; 
     } else { 
     int coverageStatus = CoverageInfo.getCoverageStatus(); 
     ServiceRecord record = getWAP2ServiceRecord(); 
     if (record != null 
     && (coverageStatus & CoverageInfo.COVERAGE_DIRECT) == 
     CoverageInfo.COVERAGE_DIRECT) { 
     // Have network coverage and a WAP 2.0 service book record 
     connectionParameters = ";deviceside=true;ConnectionUID=" 
     + record.getUid(); 
     } else if ((coverageStatus & CoverageInfo.COVERAGE_MDS) == 
     CoverageInfo.COVERAGE_MDS) { 
     // Have an MDS service book and network coverage 
     connectionParameters = ";deviceside=false"; 
     } else if ((coverageStatus & CoverageInfo.COVERAGE_DIRECT) == 
     CoverageInfo.COVERAGE_DIRECT) { 
     // Have network coverage but no WAP 2.0 service book record 
     connectionParameters = ";deviceside=true"; 
     } 

    } 
     return connectionParameters; 
    } 
     private static ServiceRecord getWAP2ServiceRecord() { 
      ServiceBook sb = ServiceBook.getSB(); 
      ServiceRecord[] records = sb.getRecords(); 
      for(int i = 0; i < records.length; i++) { 
      String cid = records[i].getCid().toLowerCase(); 
      String uid = records[i].getUid().toLowerCase(); 

      if (cid.indexOf("wptcp") != -1 && 
      uid.indexOf("wifi") == -1 && 
      uid.indexOf("mms") == -1) { 
      return records[i]; 
      } 
      } 
      return null; 
      } 

Ví dụ sử dụng các phương pháp trên.

String connParams=(isWifiConnected())?";interface=wifi":getConnParam(); 

Hope này sẽ giúp bạn

+0

Thanx tôi đã nhận được giải pháp. bây giờ làm việc của nó – Hitarth

3

thử điều này:

private static String getParameters() { 
    if (GetWiFiCoverageStatus()) { 
     return ";deviceside=true;interface=wifi"; 
    } 
    else { 
     return yourParametersForEdge 
    } 
} 

private static boolean GetWiFiCoverageStatus() { 
    if((WLANInfo.getWLANState() == WLANInfo.WLAN_STATE_CONNECTED)) { 
     return true; 
    } 
    else 
     return false;   
} 

Và khi bạn cần kết nối, bạn sẽ có thêm các thông số vào URL:

yourUrl = yourUrl + getParameters(); 
+0

Thaks mã của bạn mã của bạn cũng hữu ích cho tôi để thêm tham số trong url – Hitarth

Các vấn đề liên quan