2015-05-13 76 views
2

我正在研究應用程序,該應用程序應能檢測到設備周圍的WiFi網絡。我想檢測「始終可用的掃描」是否打開,但我無法找到。我知道這是可能的,因爲谷歌現在,實際上做:檢測WiFi掃描是否始終可用

enter image description here

回答

7

可以使用isScanAlwaysAvailable() method in WifiManager

我剛剛在Android 4.4上進行了測試,它的工作原理。

要查詢狀態,顯示提示,如果是禁用,使用此代碼(我把它放在onCreate()):

WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE); 
    if (Build.VERSION.SDK_INT >= 18) { 
     if (wifiManager.isScanAlwaysAvailable()) { 
      Toast.makeText(this, "Scan always available is on", Toast.LENGTH_SHORT).show(); 
     } 
     else{ 
      startActivityForResult(new Intent(WifiManager.ACTION_REQUEST_SCAN_ALWAYS_AVAILABLE), 100); 
     } 
    } 
    else{ 
     //Not supported 
    } 

然後,使用此代碼捕獲的決定,即用戶在做在提示的情況下,它被禁用:

@Override 
protected void onActivityResult (int requestCode, int resultCode, Intent data){ 
    if (requestCode == 100) { 
     if (resultCode == RESULT_OK) { 
      Toast.makeText(this, "User enabled Scan always available", Toast.LENGTH_SHORT).show(); 
     } else { 
      Toast.makeText(this, "User did not enable Scan always available", Toast.LENGTH_SHORT).show(); 
     } 
    } 
} 

請注意,您還需要這個權限在AndroidManifest.xml中:

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />