2011-09-21 2 views
7

검은 딸기 장치 용 응용 프로그램을 개발했습니다. 응용 프로그램은 데이터 서비스 공급자를 통해 인터넷을 사용하는 경우 제대로 작동합니다.Blackberry 응용 프로그램에서 wifi 조건 확인

나는 BB 9550을 가지고 있으며 무선 랜을 사용하여 응용 프로그램을 사용하고 싶습니다. 나는 많이 시도했지만 wifi 상태를 확인하는 적절한 답변을 얻을 수 없습니다.

Wi-Fi 또는 데이터 서비스 제공 업체를 위해 애플리케이션을 실행하는 방법을 어떻게 차별화 할 수 있습니까?

답변

10

wifi가 연결되어 있는지 확인하려면 다음 방법을 사용하십시오.

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; 
    } 

wifi가 연결되어 있지 않으면 다음 방법을 사용하면 데이터 서비스를 추가하는 데 도움이됩니다.

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; 
      } 

위의 방법을 사용하는 예.

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

희망이 당신이

+0

고맙습니다. 해결책을 찾았습니다. 지금은 작동 – Hitarth

3

이 시도 도움이 될 것입니다

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;   
} 

을 그리고 당신은 연결해야 할 때, 당신은 URL에 매개 변수를 추가해야합니다 :

yourUrl = yourUrl + getParameters(); 
+0

코드를 귀하의 코드도 나를 위해 URL에 매개 변수를 추가하는 데 도움이 Thaks – Hitarth

관련 문제