12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- package com.epson.mobilephone.common.wifidirect;
- import android.net.wifi.WifiManager;
- import android.os.Build;
- import android.os.Handler;
- import java.lang.ref.WeakReference;
- /**
- * wifi扫描工具类
- */
- public class WiFiScanner {
- private static final int INTERVAL_SCAN = 30;
- private static Handler wifiScannerHandler;
- private static Object wifiScannerToken;
- private String TAG = "WiFiScanner";
- private WeakReference<WifiManager> refWiFiManager = null;
- public boolean startScan(WifiManager wifiManager) {
- if (Build.VERSION.SDK_INT >= 28) {
- if (wifiScannerHandler == null) {
- wifiScannerHandler = new Handler();
- wifiScannerToken = new Object();
- }
- wifiScannerHandler.removeCallbacksAndMessages(wifiScannerToken);
- refWiFiManager = new WeakReference<>(wifiManager);
- wifiScannerHandler.postDelayed(new Runnable() {
- public void run() {
- WifiManager wifiManager = (WifiManager) refWiFiManager.get();
- if (refWiFiManager != null) {
- EPLog.d (TAG, "Started Delayed startScan()");
- if (!wifiManager.startScan()) {
- EPLog.e (TAG, "Failed Delayed startScan()");
- }
- }
- }
- }, wifiScannerToken, 30000);
- return true;
- } else if (wifiManager.startScan()) {
- return true;
- } else {
- EPLog.e(TAG, "Failed startScan()");
- return false;
- }
- }
- }
|