我正在开发一款应用程序,可以检测设备周围的无线网络 . 我想检测“扫描始终可用”是否打开,但我找不到如何 . 我知道这是可能的,因为谷歌现在,实际上:
您可以使用isScanAlwaysAvailable() method in WifiManager .
我刚刚在Android 4.4上测试了它,它可以工作 .
要查询状态,并显示提示是否已禁用,请使用此代码(我将其放在 onCreate() 中):
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" />
1 回答
您可以使用isScanAlwaysAvailable() method in WifiManager .
我刚刚在Android 4.4上测试了它,它可以工作 .
要查询状态,并显示提示是否已禁用,请使用此代码(我将其放在
onCreate()
中):然后,使用此代码捕获用户在被禁用的情况下在提示中做出的决定:
请注意,您还需要AndroidManifest.xml中的此权限: