Browse Source

network detection implemented

mip-it 10 years ago
parent
commit
f0e5118f5a

+ 3 - 1
AndroidManifest.xml

@@ -6,9 +6,11 @@
 
     <uses-sdk
         android:minSdkVersion="8"
-        android:targetSdkVersion="17" />
+        android:targetSdkVersion="18" />
 
     <uses-permission android:name="android.permission.INTERNET" />
+    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
+    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
 
     <application
         android:allowBackup="true"

+ 3 - 1
bin/AndroidManifest.xml

@@ -6,9 +6,11 @@
 
     <uses-sdk
         android:minSdkVersion="8"
-        android:targetSdkVersion="17" />
+        android:targetSdkVersion="18" />
 
     <uses-permission android:name="android.permission.INTERNET" />
+    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
+    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
 
     <application
         android:allowBackup="true"

BIN
bin/classes.dex


BIN
bin/classes/de/tudarmstadt/informatik/hostage/R$id.class


BIN
bin/classes/de/tudarmstadt/informatik/hostage/R$layout.class


BIN
bin/classes/de/tudarmstadt/informatik/hostage/R$menu.class


BIN
bin/classes/de/tudarmstadt/informatik/hostage/R$string.class


BIN
bin/classes/de/tudarmstadt/informatik/hostage/R$style.class


BIN
bin/classes/de/tudarmstadt/informatik/hostage/ui/ListViewAdapter.class


BIN
bin/classes/de/tudarmstadt/informatik/hostage/ui/MainActivity$1.class


BIN
bin/classes/de/tudarmstadt/informatik/hostage/ui/MainActivity$2.class


BIN
bin/classes/de/tudarmstadt/informatik/hostage/ui/MainActivity$3.class


BIN
bin/classes/de/tudarmstadt/informatik/hostage/ui/MainActivity$4.class


BIN
bin/classes/de/tudarmstadt/informatik/hostage/ui/MainActivity$5.class


BIN
bin/classes/de/tudarmstadt/informatik/hostage/ui/MainActivity.class


BIN
bin/hostage.apk


BIN
bin/resources.ap_


+ 14 - 11
gen/de/tudarmstadt/informatik/hostage/R.java

@@ -41,17 +41,19 @@ public final class R {
         public static final int light_yellow_large=0x7f020008;
     }
     public static final class id {
-        public static final int TextViewServices=0x7f0a000a;
-        public static final int action_settings=0x7f0a000f;
+        public static final int TextViewServices=0x7f0a000c;
+        public static final int action_settings=0x7f0a0011;
         public static final int checkBoxParanoid=0x7f0a0003;
         public static final int imageViewLight=0x7f0a0002;
-        public static final int listViewProtocols=0x7f0a000b;
-        public static final int textViewConnections=0x7f0a000d;
-        public static final int textViewConnectionsValue=0x7f0a000e;
+        public static final int listViewProtocols=0x7f0a000d;
+        public static final int textViewBSSID=0x7f0a0008;
+        public static final int textViewBSSIDValue=0x7f0a0009;
+        public static final int textViewConnections=0x7f0a000f;
+        public static final int textViewConnectionsValue=0x7f0a0010;
         public static final int textViewDetails=0x7f0a0005;
-        public static final int textViewIP=0x7f0a0008;
-        public static final int textViewIPValue=0x7f0a0009;
-        public static final int textViewProtocol=0x7f0a000c;
+        public static final int textViewIP=0x7f0a000a;
+        public static final int textViewIPValue=0x7f0a000b;
+        public static final int textViewProtocol=0x7f0a000e;
         public static final int textViewSSID=0x7f0a0006;
         public static final int textViewSSIDValue=0x7f0a0007;
         public static final int textViewStatus=0x7f0a0001;
@@ -68,13 +70,14 @@ public final class R {
     public static final class string {
         public static final int action_settings=0x7f070001;
         public static final int app_name=0x7f070000;
+        public static final int bssid=0x7f070008;
         public static final int capital_off=0x7f070003;
         public static final int capital_on=0x7f070002;
-        public static final int connections=0x7f07000a;
+        public static final int connections=0x7f07000b;
         public static final int details=0x7f070006;
-        public static final int ip=0x7f070008;
+        public static final int ip=0x7f070009;
         public static final int paranoid=0x7f070005;
-        public static final int services=0x7f070009;
+        public static final int services=0x7f07000a;
         public static final int ssid=0x7f070007;
         public static final int status=0x7f070004;
     }

+ 21 - 0
res/layout/activity_main.xml

@@ -86,6 +86,27 @@
                     android:textAppearance="?android:attr/textAppearanceMedium" />
             </LinearLayout>
 
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content" >
+
+                <TextView
+                    android:id="@+id/textViewBSSID"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:paddingLeft="20dp"
+                    android:text="@string/bssid"
+                    android:textAppearance="?android:attr/textAppearanceMedium" />
+
+                <TextView
+                    android:id="@+id/textViewBSSIDValue"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:paddingLeft="5dp"
+                    android:text="-"
+                    android:textAppearance="?android:attr/textAppearanceMedium" />
+            </LinearLayout>
+
             <LinearLayout
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content" >

+ 1 - 0
res/values/strings.xml

@@ -9,6 +9,7 @@
     <string name="paranoid">Paranoid Mode</string>
     <string name="details">Connection info</string>
     <string name="ssid">SSID:</string>
+    <string name="bssid">BSSID:</string>
     <string name="ip">IP:</string>
     <string name="services">Services</string>
     <string name="connections">Active connections:</string>

+ 73 - 1
src/de/tudarmstadt/informatik/hostage/ui/MainActivity.java

@@ -1,5 +1,7 @@
 package de.tudarmstadt.informatik.hostage.ui;
 
+import java.net.InetAddress;
+import java.net.UnknownHostException;
 import java.util.ArrayList;
 import java.util.HashMap;
 
@@ -12,6 +14,10 @@ import android.content.Context;
 import android.content.Intent;
 import android.content.IntentFilter;
 import android.content.ServiceConnection;
+import android.net.ConnectivityManager;
+import android.net.NetworkInfo;
+import android.net.wifi.WifiInfo;
+import android.net.wifi.WifiManager;
 import android.os.Bundle;
 import android.os.IBinder;
 import android.support.v4.content.LocalBroadcastManager;
@@ -28,6 +34,7 @@ import android.widget.AdapterView.OnItemClickListener;
 import android.widget.CheckBox;
 import android.widget.ImageView;
 import android.widget.ListView;
+import android.widget.TextView;
 import android.widget.ToggleButton;
 import android.widget.ViewAnimator;
 import de.tudarmstadt.informatik.hostage.HoneyListener;
@@ -78,6 +85,7 @@ public class MainActivity extends Activity {
 	protected void onStart() {
 		super.onStart();
 		registerReceiver();
+		registerNetReceiver();
 		if (isServiceRunning()) {
 			bindService(getServiceIntent(), mConnection, BIND_AUTO_CREATE);
 		}
@@ -85,11 +93,18 @@ public class MainActivity extends Activity {
 
 	@Override
 	protected void onStop() {
-		super.onStop();
 		if (isServiceRunning()) {
 			unbindService(mConnection);
 		}
 		unregisterReceiver();
+		unregisterNetReceiver();
+		super.onStop();
+	}
+
+	@Override
+	protected void onResume() {
+		super.onResume();
+		updateWifiInfo();
 	}
 
 	@Override
@@ -250,6 +265,15 @@ public class MainActivity extends Activity {
 		LocalBroadcastManager.getInstance(this).unregisterReceiver(mReceiver);
 	}
 
+	private void registerNetReceiver() {
+		LocalBroadcastManager.getInstance(this).registerReceiver(netReceiver,
+				new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION));
+	}
+
+	private void unregisterNetReceiver() {
+		LocalBroadcastManager.getInstance(this).unregisterReceiver(netReceiver);
+	}
+
 	private BroadcastReceiver mReceiver = new BroadcastReceiver() {
 
 		@Override
@@ -259,6 +283,15 @@ public class MainActivity extends Activity {
 
 	};
 
+	private BroadcastReceiver netReceiver = new BroadcastReceiver() {
+
+		@Override
+		public void onReceive(Context context, Intent intent) {
+			updateWifiInfo();
+		}
+
+	};
+
 	private void updateUI() {
 		boolean activeListeners = false;
 		boolean activeHandlers = false;
@@ -355,4 +388,43 @@ public class MainActivity extends Activity {
 		adapter.notifyDataSetChanged();
 	}
 
+	private void updateWifiInfo() {
+		ConnectivityManager manager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
+		NetworkInfo info = manager.getActiveNetworkInfo();
+
+		TextView ssidView = (TextView) findViewById(R.id.textViewSSIDValue);
+		TextView bssidView = (TextView) findViewById(R.id.textViewBSSIDValue);
+		TextView ipView = (TextView) findViewById(R.id.textViewIPValue);
+
+		if (info != null && info.isConnectedOrConnecting()
+				&& info.getType() == ConnectivityManager.TYPE_WIFI) {
+
+			WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE);
+			WifiInfo wifiInfo = wifiManager.getConnectionInfo();
+			ssidView.setText(wifiInfo.getSSID());
+			bssidView.setText(wifiInfo.getBSSID());
+			try {
+				String ip = InetAddress.getByAddress(
+						unpackInetAddress(wifiInfo.getIpAddress()))
+						.getHostAddress();
+				ipView.setText(ip);
+			} catch (UnknownHostException e) {
+			}
+		} else {
+			ssidView.setText("-");
+			bssidView.setText("-");
+			ipView.setText("-");
+		}
+
+		ssidView.invalidate();
+		bssidView.invalidate();
+		ipView.invalidate();
+	}
+
+	private byte[] unpackInetAddress(int bytes) {
+		return new byte[] { (byte) ((bytes) & 0xff),
+				(byte) ((bytes >>> 8) & 0xff), (byte) ((bytes >>> 16) & 0xff),
+				(byte) ((bytes >>> 24) & 0xff) };
+	}
+
 }