2014-09-24 91 views
1

我想獲得最新的接入點掃描結果。所以使用Android文檔中提供的這種方法WifiManager in Android DocumentationWifiManager.getScanResults()沒有給Android上的SSID Jelly Bean

在其他所有設備和版本中,它工作正常,只是給Android Jelly Bean帶來問題。 它不會給出從此方法檢索結果中的SSID名稱。

我已經在很多地方看到,果凍豆中存在雙引號「」的問題,是的,這是真的,因爲我已經檢查了當前連接的wifi名稱,並且它被包含在「」中,所以我只刪除了開始和結束的引號,它給我一個好名字。 但是,從WifiManger.getScanResults()獲取結果時,它甚至沒有在檢索結果中給出SSID名稱。

下面是代碼

wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE); 

    if (wifi.isWifiEnabled() == false) { // If Wifi is off, Switch it on 
     wifi.setWifiEnabled(true); 
    } 

    receiverWifi = new WifiReceiver(); 
    registerReceiver(receiverWifi, new IntentFilter(
      WifiManager.SCAN_RESULTS_AVAILABLE_ACTION)); 
    wifi.startScan(); 
    results = wifi.getScanResults(); 

    for(int i=0 ; i<results.size(); i++){  
     String reslt = results.get(i).toString(); 
     Log.d("TAG", "wifi ->>>" + reslt); 
    } 

誰能幫助我在這個問題?

在此先感謝。

+0

可以你請顯示你的代碼你做了什麼。 – pavanmvn 2014-09-24 12:06:32

+0

更新了問題。添加了有問題的代碼。 @pavanmvn – 2014-09-24 16:07:51

回答

0

我已經找到了另一種方法爲這個我粘貼下面

public class MainActivity extends Activity { 

WifiManager mWifiManager; 
String Available_Networks=""; 
TextView ShowSSIDs; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    mWifiManager = (WifiManager)getSystemService(Context.WIFI_SERVICE); 
    //mWifiManager.startScan(); 
    ShowSSIDs = (TextView) findViewById(R.id.ssId); 
    List<WifiConfiguration> mScanResults = mWifiManager.getConfiguredNetworks(); 
    for(int x=0; x<mScanResults.size();x++){ 
     Available_Networks+=mScanResults.get(x).SSID+"\n"; 
    } 
    ShowSSIDs.setText(Available_Networks); 

} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.main, menu); 
    return true; 
} 

代碼}

相關問題