diff --git a/app/app.iml b/app/app.iml index 2572a62..2954855 100644 --- a/app/app.iml +++ b/app/app.iml @@ -84,7 +84,6 @@ - diff --git a/library/library.iml b/library/library.iml index 9e2467d..72267c4 100644 --- a/library/library.iml +++ b/library/library.iml @@ -61,8 +61,6 @@ - - @@ -82,17 +80,12 @@ - - - - - - + diff --git a/library/src/main/java/com/android/utils/wificonnecter/WiFiConnecter.java b/library/src/main/java/com/android/utils/wificonnecter/WiFiConnecter.java index 5871876..550e8cf 100644 --- a/library/src/main/java/com/android/utils/wificonnecter/WiFiConnecter.java +++ b/library/src/main/java/com/android/utils/wificonnecter/WiFiConnecter.java @@ -26,14 +26,14 @@ public class WiFiConnecter { // Combo scans can take 5-6s to complete private static final int WIFI_RESCAN_INTERVAL_MS = 5 * 1000; - private static final int MAX_TRY_COUNT = 3; + private static final String TAG = WiFiConnecter.class.getSimpleName(); private Context mContext; private WifiManager mWifiManager; private final IntentFilter mFilter; - private final BroadcastReceiver mReceiver; + private BroadcastReceiver mReceiver; private final Scanner mScanner; private ActionListener mListener; private String mSsid; @@ -53,15 +53,7 @@ public WiFiConnecter(Context context) { mFilter.addAction(WifiManager.SUPPLICANT_STATE_CHANGED_ACTION); mFilter.addAction(WifiManager.NETWORK_STATE_CHANGED_ACTION); - mReceiver = new BroadcastReceiver() { - @Override - public void onReceive(Context context, Intent intent) { - handleEvent(context, intent); - } - }; - context.registerReceiver(mReceiver, mFilter); - isRegistered = true; mScanner = new Scanner(); } @@ -78,6 +70,17 @@ public void connect(String ssid, String password, ActionListener listener) { this.mSsid = ssid; this.mPassword = password; + isRegistered = true; + mReceiver = new BroadcastReceiver() { + @Override + public void onReceive(Context context, Intent intent) { + handleEvent(context, intent); + } + }; + + Log.d(TAG, "registerReceiver:" + mReceiver.toString()); + mContext.registerReceiver(mReceiver, mFilter); + if (listener != null) { listener.onStarted(ssid); } @@ -92,15 +95,17 @@ private void handleEvent(Context context, Intent intent) { //TODO zls:Error receiving broadcast Intent { act=android.net.wifi.SCAN_RESULTS flg=0x4000010 } if (WifiManager.SCAN_RESULTS_AVAILABLE_ACTION.equals(intent.getAction()) && isActiveScan) { isActiveScan = false; - List results = mWifiManager.getScanResults(); - Log.d("WiFiConnecter", "results:" + results.size()); + Log.d(TAG, "scan results:" + results.toString()); for (ScanResult result : results) { if (mSsid.equals(result.SSID)) { // mScanner.pause(); + Log.d(TAG, "find result:" + result); //https://code.google.com/p/android-wifi-connecter/ // Loger.d("result.SSID=" +result.SSID+" newNetwork:"+newNetwork); - if (!connect(context, result, mPassword)) { + boolean connectResult = connect(context, result, mPassword); + Log.d(TAG, "connect result:" + connectResult); + if (!connectResult) { if (mListener != null) { mListener.onFailure(); mListener.onFinished(false); @@ -119,7 +124,7 @@ private void handleEvent(Context context, Intent intent) { if (mInfo.isConnected() && mWifiInfo != null && mWifiInfo.getSSID() != null && //nexus 5 have quote,sumsang don't have quote (mWifiInfo.getSSID().equals(mSsid) || - mWifiInfo.getSSID().equals(Wifi.convertToQuotedString(mSsid)))) { + mWifiInfo.getSSID().equals(Wifi.convertToQuotedString(mSsid)))) { if (mListener != null) { // Loger.d("success"); mListener.onSuccess(mWifiInfo); @@ -146,6 +151,7 @@ public boolean connect(Context context, ScanResult mScanResult, String mPassword WifiConfiguration config = Wifi.getWifiConfiguration(mWifiManager, mScanResult, security); if (config == null) { + Log.d(TAG, "start connect new network"); connResult = newNetWork(context, mScanResult, mPassword); } else { final boolean isCurrentNetwork_ConfigurationStatus = config.status == WifiConfiguration.Status.CURRENT; @@ -156,6 +162,7 @@ public boolean connect(Context context, ScanResult mScanResult, String mPassword if (isCurrentNetwork_ConfigurationStatus || isCurrentNetwork_WifiInfo) { connResult = true; } else { + Log.d(TAG, "start connect configure network"); connResult = configuredNetwork(context, config, security, mPassword); } } @@ -212,6 +219,7 @@ private boolean configuredNetwork(Context context, WifiConfiguration config, Str public void onPause() { if (isRegistered) { + Log.d(TAG, "unregisterReceiver:" + mReceiver.toString()); mContext.unregisterReceiver(mReceiver); isRegistered = false; } @@ -249,6 +257,7 @@ void pause() { @Override public void handleMessage(Message message) { + Log.d(TAG, "mRetry:" + mRetry); if (mRetry < MAX_TRY_COUNT) { mRetry++; isActiveScan = true; @@ -258,6 +267,7 @@ public void handleMessage(Message message) { } //TODO startScan return false? boolean startScan = mWifiManager.startScan(); + Log.d(TAG, "startScan:" + startScan); // exe scan fail(bind mechanism) if (!startScan) { if (mListener != null) {