From 221659c7459aafb45446fcf46d7491aeba70a82a Mon Sep 17 00:00:00 2001 From: Gerome Bochmann Date: Tue, 10 Feb 2015 20:56:04 +0100 Subject: [PATCH] Wifi Connectivity Check fixed for HTC One S --- .../tueroeffner/DerivBroadcastReceiver.java | 64 +++++++++++-------- .../datenknoten/tueroeffner/MainActivity.java | 4 +- 2 files changed, 41 insertions(+), 27 deletions(-) diff --git a/app/src/main/java/me/datenknoten/tueroeffner/DerivBroadcastReceiver.java b/app/src/main/java/me/datenknoten/tueroeffner/DerivBroadcastReceiver.java index eca2843..88e14a9 100644 --- a/app/src/main/java/me/datenknoten/tueroeffner/DerivBroadcastReceiver.java +++ b/app/src/main/java/me/datenknoten/tueroeffner/DerivBroadcastReceiver.java @@ -5,40 +5,54 @@ import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.net.NetworkInfo; -import android.net.wifi.WifiConfiguration; import android.net.wifi.WifiInfo; import android.net.wifi.WifiManager; import android.view.View; import android.widget.Button; import android.widget.Toast; -/** - * Created by tim on 24.01.15. - */ public class DerivBroadcastReceiver extends BroadcastReceiver { + + private final Context appContext; + private final String targetSSID; + + + public DerivBroadcastReceiver(Context appContext, String networkSSID) { + this.appContext = appContext; + this.targetSSID = networkSSID; + } + @Override public void onReceive(Context context, Intent intent) { - final String action = intent.getAction(); - if (action.equals(WifiManager.NETWORK_STATE_CHANGED_ACTION)) { - NetworkInfo nwInfo = intent.getParcelableExtra(WifiManager.EXTRA_NETWORK_INFO); - if (nwInfo.getExtraInfo() != null && nwInfo.getExtraInfo().equals(MainActivity.networkSSID) && nwInfo.isConnected()) { - View rootView = ((Activity)context).getWindow().getDecorView().findViewById(android.R.id.content); - Button button = (Button) rootView.findViewById(R.id.button2); - button.setEnabled(true); - button = (Button) rootView.findViewById(R.id.button3); - button.setEnabled(true); - button = (Button) rootView.findViewById(R.id.button); - button.setEnabled(true); - Toast.makeText(context, context.getString(R.string.wlan_connected), Toast.LENGTH_SHORT).show(); - } else { - View rootView = ((Activity)context).getWindow().getDecorView().findViewById(android.R.id.content); - Button button = (Button) rootView.findViewById(R.id.button2); - button.setEnabled(false); - button = (Button) rootView.findViewById(R.id.button3); - button.setEnabled(false); - button = (Button) rootView.findViewById(R.id.button); - button.setEnabled(false); - } +// final String action = intent.getAction(); + + WifiManager wifiManager = (WifiManager) appContext.getSystemService(Context.WIFI_SERVICE); + WifiInfo wifiInfo = wifiManager.getConnectionInfo(); + + NetworkInfo nwInfo = intent.getParcelableExtra(WifiManager.EXTRA_NETWORK_INFO); + + if (nwInfo != null && nwInfo.isConnectedOrConnecting()) { + String ssid = wifiInfo.getSSID(); + + if (ssid.equals(targetSSID)){ + buttonActivator((Activity) context, true); + Toast.makeText(context, context.getString(R.string.wlan_connected), Toast.LENGTH_SHORT).show(); + } else { + buttonActivator((Activity) context, false); + } + } } + + private void buttonActivator(Activity context, boolean ssidTrue) { + View rootView = context.getWindow().getDecorView().findViewById(android.R.id.content); + Button button = (Button) rootView.findViewById(R.id.button_buzzer); + button.setEnabled(ssidTrue); + button = (Button) rootView.findViewById(R.id.button_door_open); + button.setEnabled(ssidTrue); + button = (Button) rootView.findViewById(R.id.button_door_unlock); + button.setEnabled(ssidTrue); + button = (Button) rootView.findViewById(R.id.button); + button.setEnabled(ssidTrue); + } } diff --git a/app/src/main/java/me/datenknoten/tueroeffner/MainActivity.java b/app/src/main/java/me/datenknoten/tueroeffner/MainActivity.java index b931bc5..d6b1e9a 100644 --- a/app/src/main/java/me/datenknoten/tueroeffner/MainActivity.java +++ b/app/src/main/java/me/datenknoten/tueroeffner/MainActivity.java @@ -48,7 +48,7 @@ import java.util.List; public class MainActivity extends ActionBarActivity { - final static String networkSSID = "\"KrautSpace\""; + final static String networkSSID = "KrautSpace"; @Override protected void onCreate(Bundle savedInstanceState) { @@ -63,7 +63,7 @@ public class MainActivity extends ActionBarActivity { IntentFilter intentFilter = new IntentFilter(); intentFilter.addAction(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION) ; intentFilter.addAction(WifiManager.NETWORK_STATE_CHANGED_ACTION); - registerReceiver(new DerivBroadcastReceiver(),intentFilter); + registerReceiver(new DerivBroadcastReceiver(this, networkSSID),intentFilter); }