2017-07-06 73 views
1

編輯: 我知道SCAN_RESULTS_AVAILABLE_ACTION返回尺寸列表「0」,如果位置服務off.The問題是如何做到這一點沒有位置服務。獲得可用的無線網絡列表不顯示位置服務的Android

上一篇: 我需要所有可用的WiFi網絡到電話的列表,並使用該列表來填充在應用的過程中ListView。我稍後將從我的應用程序連接到所需的網絡。

我以實現上述,

wifiManager.startScan(); 

和我已經註冊用於接收暗示一個BroadcastReciever當掃描完成像下面,

registerReceiver(wifiReceiver, new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION)); 

接收機代碼如下,

class WifiReceiver extends BroadcastReceiver { 

     // This method call when number of wifiManager connections changed 
     public void onReceive(Context c, Intent intent) { 
      wifiResults.clear(); 
      wifiList = wifiManager.getScanResults(); 
      for(int i = 0; i < wifiList.size(); i++){ 
       if(!wifiList.get(i).SSID.equals("")) 
       wifiResults.add(wifiList.get(i).SSID+" signal:"+wifiList.get(i).level); 
      } 
      adapter.notifyDataSetChanged(); 
      wifiRefreshLayout.setRefreshing(false); 

     } 
    } 

問題是我必須啓用位置服務每ti我希望獲得上述信息。由於我不需要位置服務,因此其他應用程序(如「SHAREit」)在不需要位置服務的情況下也能實現同樣的功能,因此我並不真正瞭解這一點。我是否有更好的方法來實現這一目標?

+0

SHAREit不要求定位服務 – nitzanms

+0

的可能的複製[掃描\ _results \ _AVAILABLE \ _action回到空蕩蕩的Android 6.0列表(https://stackoverflow.com/questions/32151603/scan-results-available-action-return- Android-6-0中的空列表) – nitzanms

+0

@nitzanms不shareit不需要位置服務 –

回答

0

通過將應用程序的targetSDKversion設置爲21或更低,我們可以獲得沒有打開GPS的可用WIFI列表。

+0

謝謝,但這不是一個選項,因爲我想要最新的目標SDK版本 –