2017-12-03 6 views
0

現在接続されているネットワークのssidとbssidを取得したいと思います。私はWifiManager.NETWORK_STATE_CHANGED_ACTIONアクションを聞いているBroadcastReceiverを設立しました。
は今、私はこのBroadcastReceiverで次のコードを持っている:私は、ステップバイステップでそれをデバッガに行く素晴らしくときアプリがデバッグされてもエラーが表示されないのはなぜですか?

ConnectivityManager con = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); 
NetworkInfo networkInfo = null; 
if (con != null) { 
    networkInfo = con.getNetworkInfo(ConnectivityManager.TYPE_WIFI); 
} 
String ssid = ""; 
String bssid = ""; 
if(connectionInfo!=null && !TextUtils.isEmpty(connectionInfo.getSSID())){ 
    ssid = connectionInfo.getSSID(); 
    bssid = connectionInfo.getBSSID(); 
} 
boolean wasFound = false; 
    Log.e("tag", "receiving" + " " + networkInfo.isConnected() + " " + wifis); 
    if(wifis!=null && networkInfo!=null && networkInfo.isConnected()) { 
     String[] sarray = wifis.toArray(new String[0]); 
     Log.e("tag", "checking0"); 
     for (int i = 0; i < wifis.size(); i++) { 
       String sssid = sarray[i].substring(0,sarray[i].indexOf('+')); 
       String bsssid = sarray[i].replace("\"","").substring(sarray[i].replace("\"","").lastIndexOf('+')+1);  
       Log.e("tag", "checking" + ssid + " "+sssid); 
       if(ssid.equals(sssid)){ 
        Log.e("tag", "checkingmore" + bssid + " "+bsssid); 
        wasFound = true; 
        if(!bsssid.equals(bssid)){ 
         alertUser(); 
        } 
       } 

     } 
} 

をこれが(「alertUser()」を呼び出します)動作します。デバッガなしでアプリケーションを実行すると、「受信」のログエントリが表示され、「networkInfo.isConnected()」はfalseになります。インターネットアクセスがあり、正常に機能しているためデバッガで。

どのように私は実際にそれを実行するときではなく、私はそれをデバッグするときにアプリが動作することは可能ですか?

答えて

0

以下の行のログにnetworkInfo.inConnected()のステータスが表示されますか?

Log.e("tag", "receiving" + " " + networkInfo.isConnected() + " " + wifis);

関連する問題