diff --git a/.idea/gradle.xml b/.idea/gradle.xml index 440c1d7..58992cc 100644 --- a/.idea/gradle.xml +++ b/.idea/gradle.xml @@ -5,13 +5,19 @@ + diff --git a/.idea/misc.xml b/.idea/misc.xml index 5d19981..fbb6828 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -37,7 +37,7 @@ - + diff --git a/app/build.gradle b/app/build.gradle index 27ac1f0..0511738 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -2,7 +2,7 @@ apply plugin: 'com.android.application' android { compileSdkVersion 23 - buildToolsVersion '23.0.3' + buildToolsVersion '23.0.2' defaultConfig { applicationId "de.fhws.indoor.sensorreadout" diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 6eabe13..fbdcffd 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -2,9 +2,9 @@ > - + diff --git a/app/src/main/java/de/fhws/indoor/sensorreadout/MainActivity.java b/app/src/main/java/de/fhws/indoor/sensorreadout/MainActivity.java index a5219a0..4d1ead3 100644 --- a/app/src/main/java/de/fhws/indoor/sensorreadout/MainActivity.java +++ b/app/src/main/java/de/fhws/indoor/sensorreadout/MainActivity.java @@ -2,6 +2,7 @@ package de.fhws.indoor.sensorreadout; import android.Manifest; import android.app.Activity; +import android.app.ActivityManager; import android.content.Context; import android.content.res.Configuration; import android.graphics.Color; @@ -9,6 +10,9 @@ import android.media.MediaPlayer; import android.os.Build; import android.os.Bundle; import android.support.v4.app.ActivityCompat; +import android.support.v4.content.pm.ActivityInfoCompat; +import android.support.wearable.activity.WearableActivity; +import android.util.Log; import android.view.View; import android.widget.ArrayAdapter; import android.widget.Button; @@ -31,7 +35,7 @@ import de.fhws.indoor.sensorreadout.sensors.mySensor; import de.fhws.indoor.sensorreadout.sensors.SensorType; -public class MainActivity extends Activity { +public class MainActivity extends WearableActivity { private final ArrayList sensors = new ArrayList(); private final Logger logger = new Logger(this); @@ -195,6 +199,7 @@ public class MainActivity extends Activity { @Override public void onData(final SensorType id, final String csv) {return; } }); + // bluetooth permission if(ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.ACCESS_FINE_LOCATION)) { @@ -204,6 +209,7 @@ public class MainActivity extends Activity { MY_PERMISSIONS_REQUEST_READ_BT); } + // heartbeat permission /* if(ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.BODY_SENSORS)) { @@ -221,7 +227,8 @@ public class MainActivity extends Activity { loadCounterAny = 0; logger.start(); final TextView txt = (TextView) findViewById(R.id.txtFile); - txt.setText(logger.getFile().getAbsolutePath()); + String path = logger.getFile().getAbsolutePath(); + txt.setText(path.substring(path.length()-17, path.length())); for (final mySensor s : sensors) {s.onResume(this);} } @@ -272,6 +279,23 @@ public class MainActivity extends Activity { /** resume activity */ protected void onResume() { super.onResume(); + + + //print memory info + ActivityManager.MemoryInfo mi = new ActivityManager.MemoryInfo(); + ActivityManager activityManager = (ActivityManager) getSystemService(ACTIVITY_SERVICE); + activityManager.getMemoryInfo(mi); + long availableMegs = mi.availMem / 1048576L; + + Runtime info = Runtime.getRuntime(); + long freeSize = info.freeMemory(); + long totalSize = info.totalMemory(); + long usedSize = totalSize - freeSize; + + Log.d("MemoryInfo: ", String.valueOf(availableMegs)); + Log.d("FreeSize: ", String.valueOf(freeSize)); + Log.d("TotalSize: ", String.valueOf(totalSize)); + Log.d("usedSize: ", String.valueOf(usedSize)); } @Override diff --git a/app/src/main/java/de/fhws/indoor/sensorreadout/sensors/WiFi.java b/app/src/main/java/de/fhws/indoor/sensorreadout/sensors/WiFi.java index fd4f0f5..834614d 100644 --- a/app/src/main/java/de/fhws/indoor/sensorreadout/sensors/WiFi.java +++ b/app/src/main/java/de/fhws/indoor/sensorreadout/sensors/WiFi.java @@ -7,6 +7,7 @@ import android.content.Intent; import android.content.IntentFilter; import android.net.wifi.ScanResult; import android.net.wifi.WifiManager; +import android.os.Debug; import android.util.Log; import java.util.List; @@ -28,21 +29,35 @@ public class WiFi extends mySensor { this.wifi = (WifiManager) act.getSystemService(Context.WIFI_SERVICE); isReceiverRegistered = true; - this.receiver = new BroadcastReceiver() { - @Override public void onReceive(Context context, Intent intent) { - final StringBuilder sb = new StringBuilder(1024); - final List res = wifi.getScanResults(); - for(final ScanResult sr : res) { - sb.append(Helper.stripMAC(sr.BSSID)).append(';'); - sb.append(sr.frequency).append(';'); - sb.append(sr.level).append(';'); - } - if (listener != null && isReceiverRegistered) {listener.onData(sb.toString());} - startScan(); - //Log.d("wifi", sb.toString()); - } - }; + this.wifi.setWifiEnabled(false); + this.wifi.setWifiEnabled(true); + + if (wifi == null) { + throw new MyException("WIFI not supported!"); + } + if (wifi.isWifiEnabled()) { + this.receiver = new BroadcastReceiver() { + @Override + public void onReceive(Context context, Intent intent) { + final StringBuilder sb = new StringBuilder(1024); + final List res = wifi.getScanResults(); + for (final ScanResult sr : res) { + sb.append(Helper.stripMAC(sr.BSSID)).append(';'); + sb.append(sr.frequency).append(';'); + sb.append(sr.level).append(';'); + } + if (listener != null && isReceiverRegistered) { + listener.onData(sb.toString()); + } + startScan(); + //Log.d("wifi", sb.toString()); + } + }; + } + else { + throw new MyException("WIFI not supported!"); + } } @@ -52,8 +67,10 @@ public class WiFi extends mySensor { try { //Method startScanActiveMethod = wifi.getClass().getMethod("startScanActive"); //startScanActiveMethod.invoke(wifi); - wifi.startScan(); - Log.d("wifi", "start scan"); + if(!wifi.startScan()){ + throw new MyException("Cant start WiFi!"); + } + //Log.d("wifi", "start scan"); }catch (final Exception e) { throw new RuntimeException(e); } @@ -64,7 +81,7 @@ public class WiFi extends mySensor { act.registerReceiver(this.receiver, new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION)); isReceiverRegistered = true; wifi.createWifiLock(wifi.WIFI_MODE_SCAN_ONLY, "ipin"); - wifi.disconnect(); + //wifi.disconnect(); startScan(); } diff --git a/app/src/main/java/de/fhws/indoor/sensorreadout/sensors/iBeacon.java b/app/src/main/java/de/fhws/indoor/sensorreadout/sensors/iBeacon.java index 7ab7d55..3cc2017 100644 --- a/app/src/main/java/de/fhws/indoor/sensorreadout/sensors/iBeacon.java +++ b/app/src/main/java/de/fhws/indoor/sensorreadout/sensors/iBeacon.java @@ -57,8 +57,10 @@ public class iBeacon extends mySensor { private final void enableBT(final Activity act) { if (bt == null) {throw new RuntimeException("BT not supported!");} - Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE); - act.startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT); + if (!bt.isEnabled()) { + Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE); + act.startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT); + } } @Override public void onResume(final Activity act) {