2011-09-21 10 views
7

私はブラックベリーデバイス用のアプリケーションを開発しました。データサービスプロバイダ経由でインターネットを使用している場合、アプリケーションは正常に動作しています。ブラックベリーアプリケーションで無線LANの状態を確認してください

私はBB 9550を持っており、私は無線LANを使って自分のアプリケーションを使いたいです。私はたくさん試しましたが、私は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

Thanx私は解決策を得ました。今すぐその作業 – 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

関連する問題