diff --git a/README.md b/README.md
index a5554a4..d318423 100644
--- a/README.md
+++ b/README.md
@@ -8,7 +8,7 @@ device and receive an audio stream.
The project is a fork of _Protect Baby Monitor_ which is declared as "on hiatus" by its developer.
-_Child Monitor_ works on Android 4.4 (KitKat) and newer, i.e. Android SDK 19.
+_Child Monitor_ works on Android 5.0 (Lollipop) and newer, i.e. Android SDK 21.
The current version of _Child Monitor_ is rudimentary at best. It is capable
of successfully advertising itself on the network, allows clients to connect,
diff --git a/app/build.gradle b/app/build.gradle
index a702243..223756b 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -11,7 +11,7 @@ android {
defaultConfig {
applicationId "child.monitor"
- minSdkVersion 19
+ minSdkVersion 21
targetSdkVersion 26
versionCode 4
versionName "0.4"
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index a267d4b..f7404c9 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -4,6 +4,7 @@
android:versionCode="2"
android:versionName="0.2" >
+
diff --git a/app/src/main/java/de/rochefort/childmonitor/MonitorActivity.java b/app/src/main/java/de/rochefort/childmonitor/MonitorActivity.java
index fa4b3d0..74acab0 100644
--- a/app/src/main/java/de/rochefort/childmonitor/MonitorActivity.java
+++ b/app/src/main/java/de/rochefort/childmonitor/MonitorActivity.java
@@ -18,20 +18,24 @@ package de.rochefort.childmonitor;
import java.io.IOException;
import java.io.OutputStream;
+import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;
+import java.util.ArrayList;
+import java.util.List;
import java.util.Objects;
import android.app.Activity;
import android.content.Context;
import android.media.AudioRecord;
import android.media.MediaRecorder;
+import android.net.ConnectivityManager;
+import android.net.LinkAddress;
+import android.net.Network;
+import android.net.NetworkInfo;
import android.net.nsd.NsdManager;
import android.net.nsd.NsdServiceInfo;
-import android.net.wifi.WifiInfo;
-import android.net.wifi.WifiManager;
import android.os.Bundle;
-import android.text.format.Formatter;
import android.util.Log;
import android.widget.TextView;
@@ -138,23 +142,47 @@ public class MonitorActivity extends Activity {
}
}).start();
- final TextView addressText = (TextView) findViewById(R.id.address);
+ final TextView addressText = findViewById(R.id.address);
- // Use the application context to get WifiManager, to avoid leak before Android 5.1
- final WifiManager wifiManager =
- (WifiManager) getApplicationContext().getSystemService(WIFI_SERVICE);
- final WifiInfo info = wifiManager.getConnectionInfo();
- final int address = info.getIpAddress();
- if(address != 0) {
- @SuppressWarnings("deprecation")
- final String ipAddress = Formatter.formatIpAddress(address);
- addressText.setText(ipAddress);
+ List listenAddresses = getListenAddresses();
+ if(!listenAddresses.isEmpty()) {
+ StringBuilder sb = new StringBuilder();
+ for (int i = 0; i < listenAddresses.size(); i++) {
+ String listenAddress = listenAddresses.get(i);
+ sb.append(listenAddress);
+ if (i != listenAddresses.size() -1) {
+ sb.append("\n\n");
+ }
+ }
+ addressText.setText(sb.toString());
} else {
- addressText.setText(R.string.wifiNotConnected);
+ addressText.setText(R.string.notConnected);
}
}
+ private List getListenAddresses() {
+ String service = Context.CONNECTIVITY_SERVICE;
+ ConnectivityManager cm = (ConnectivityManager)getSystemService(service);
+ List listenAddresses = new ArrayList<>();
+ if (cm != null) {
+ for (Network network : cm.getAllNetworks()) {
+ NetworkInfo networkInfo = cm.getNetworkInfo(network);
+ boolean connected = networkInfo.isConnected();
+ if (connected) {
+ List linkAddresses = cm.getLinkProperties(network).getLinkAddresses();
+ for (LinkAddress linkAddress : linkAddresses) {
+ InetAddress address = linkAddress.getAddress();
+ if (!address.isLinkLocalAddress() && !address.isLoopbackAddress()) {
+ listenAddresses.add(address.getHostAddress() + " (" + networkInfo.getTypeName() + ")");
+ }
+ }
+ }
+ }
+ }
+ return listenAddresses;
+ }
+
@Override
protected void onDestroy() {
Log.i(TAG, "ChildMonitor stop");
diff --git a/app/src/main/res/layout/activity_monitor.xml b/app/src/main/res/layout/activity_monitor.xml
index 6a1c3c0..c8de77c 100644
--- a/app/src/main/res/layout/activity_monitor.xml
+++ b/app/src/main/res/layout/activity_monitor.xml
@@ -20,76 +20,98 @@
android:textSize="25sp" />
+ android:layout_width="match_parent"
+ android:layout_height="15dip" />
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml
index 9553492..6c4d3fe 100644
--- a/app/src/main/res/values-de/strings.xml
+++ b/app/src/main/res/values-de/strings.xml
@@ -20,10 +20,9 @@
Verbunden mit:
Getrennt
Lausche...
- Adresse:
+ Adressen:
Port:
- Adresse und Port zum Koppeln mit Eltern
- Nicht mit WLAN-Netzwerk verbunden
+ Mit keinem Netzwerk verbunden
Gib die IP-Adresse und den Port des Kind-Gerätes ein und klicke auf Verbinden
Verbinden
192.168.1.2
diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml
index 912abb6..a0c8134 100644
--- a/app/src/main/res/values-ja/strings.xml
+++ b/app/src/main/res/values-ja/strings.xml
@@ -22,8 +22,7 @@
リスニング中...
アドレス:
ポート:
- 親機がペアにする先のアドレスとポート
- Wi-Fi ネットワークに接続されていません
+ ネットワークに接続されていません
子機の IP アドレスとポートを入力して、接続をクリックしてください
接続
192.168.1.2
diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml
index 370c4e4..9537fc4 100644
--- a/app/src/main/res/values-nl/strings.xml
+++ b/app/src/main/res/values-nl/strings.xml
@@ -20,10 +20,9 @@
Verbonden met:
Verbinding verbroken
Bezig met luisteren...
- Adres:
+ Adressen:
Poort:
- Adres en poort waar de ouder mee moet verbinden
- Niet verbonden met een Wi-Fi-netwerk
+ Niet verbonden met een netwerk
Voer het IP-adres en de poort van een kindapparaat in en druk op Verbinden
Verbinden
192.168.1.2
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 7ee29d5..e2c09d2 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -20,10 +20,9 @@
Connected To:
Disconnected
Listening...
- Address:
+ Addresses:
Port:
- Address and port that parent must pair to
- Not connected to a Wi-Fi network
+ Not connected to any network
Enter the IP Address and port of a child and click Connect
Connect
192.168.1.2