2011-09-21 8 views
7

Ho sviluppato un'applicazione per dispositivi BlackBerry. L'applicazione funziona correttamente se utilizza Internet tramite il fornitore di servizi di dati.Verifica condizioni wifi nell'applicazione Blackberry

Ho BB 9550 e voglio usare la mia applicazione usando il wifi. Ho provato molto ma non riesco a ottenere una risposta adeguata per verificare le condizioni wifi.

Come possiamo differenziare per eseguire la nostra applicazione per il provider di servizi wifi o dati?

risposta

10

Per il controllo della connessione wifi è collegato o meno il seguente metodo sarà di aiuto.

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

se la connessione wifi non è collegata, i seguenti metodi consentiranno di aggiungere il servizio dati.

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

Esempio per utilizzare i metodi sopra.

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

Speranza Questo vi aiuterà a

+0

Grazie ho la soluzione. ora funziona – Hitarth

3

provare questo:

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

E quando è necessario collegare, dovrete aggiungere i parametri all'URL:

yourUrl = yourUrl + getParameters(); 
+0

Thaks il tuo codice il tuo codice anche utile per me per aggiungere parametri in url – Hitarth