From 5e5aaff9d4650f3ecd2d614c53022ad80b6b9e63 Mon Sep 17 00:00:00 2001 From: toni Date: Thu, 10 Oct 2019 19:16:58 +0200 Subject: [PATCH] quickfixes for lindenberg disable heart rate sensor, because you have to ask for permissions sequentially! so we have to create a class for all these requests now we only ask for location permission fixed ble stuff added some todos --- .idea/caches/build_file_checksums.ser | Bin 534 -> 591 bytes .idea/codeStyles/Project.xml | 116 ++++++++++++++++++ .idea/gradle.xml | 4 + .idea/misc.xml | 2 +- .idea/modules.xml | 4 +- app/build.gradle | 14 +-- app/src/main/AndroidManifest.xml | 3 +- .../indoor/sensorreadout/MainActivity.java | 16 +-- .../sensorreadout/sensors/PhoneSensors.java | 30 ++--- .../indoor/sensorreadout/sensors/iBeacon.java | 26 +++- 10 files changed, 176 insertions(+), 39 deletions(-) create mode 100644 .idea/codeStyles/Project.xml diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser index e96d59a23f991ff59bbdd50be9dea49fb847e731..3b627419cbeddc3e37aff1c889752c02848051bd 100644 GIT binary patch delta 162 zcmV;T0A2r<1kVJJmj!LMr>3TnoQMGolkWi*5T3&`B7*@m=Q?iHgxcY%Fq4e|9UM8n zF`*l%9Z+J^pE4Co7Rz)1Brj-hZDlWXZ*G$>0XI8JFKupgFGOKX?kIFX>V>XQ)O;*Z*o#)VPtQ0bT5Fx&bZ$cyfL~r2qf` delta 143 zcmX@lGL2=zbk>}%i_E7c>M*)z8S!P1P?>&CHtI!f39}lT@0SlcJYil$er}T3X0Z z$H2zGz#zc0@reF{RWW-Df4=l6;yc1W*_%;TK-0)sBC#gzr25+;K1a!QUXvA=^z=#? d1QH7h^syUL%p%b0Ys2+!heL`|=H0nxD*!*oF@gX9 diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml new file mode 100644 index 0000000..681f41a --- /dev/null +++ b/.idea/codeStyles/Project.xml @@ -0,0 +1,116 @@ + + + + + + + +
+ + + + xmlns:android + + ^$ + + + +
+
+ + + + xmlns:.* + + ^$ + + + BY_NAME + +
+
+ + + + .*:id + + http://schemas.android.com/apk/res/android + + + +
+
+ + + + .*:name + + http://schemas.android.com/apk/res/android + + + +
+
+ + + + name + + ^$ + + + +
+
+ + + + style + + ^$ + + + +
+
+ + + + .* + + ^$ + + + BY_NAME + +
+
+ + + + .* + + http://schemas.android.com/apk/res/android + + + ANDROID_ATTRIBUTE_ORDER + +
+
+ + + + .* + + .* + + + BY_NAME + +
+
+
+
+
+
\ No newline at end of file diff --git a/.idea/gradle.xml b/.idea/gradle.xml index 7ac24c7..ee635a3 100644 --- a/.idea/gradle.xml +++ b/.idea/gradle.xml @@ -3,6 +3,9 @@ diff --git a/.idea/misc.xml b/.idea/misc.xml index 7bfef59..37a7509 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,6 +1,6 @@ - + diff --git a/.idea/modules.xml b/.idea/modules.xml index 36c117d..114d914 100644 --- a/.idea/modules.xml +++ b/.idea/modules.xml @@ -2,8 +2,8 @@ - - + + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 0b1ebf4..fc32ebe 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -6,8 +6,8 @@ android { defaultConfig { applicationId "de.fhws.indoor.sensorreadout" - minSdkVersion 19 - targetSdkVersion 23 + minSdkVersion 23 + targetSdkVersion 29 versionCode 1 versionName "1.0" multiDexEnabled true @@ -21,11 +21,11 @@ android { } dependencies { - implementation 'com.android.support:design:23.4.0' - compile fileTree(include: ['*.jar'], dir: 'libs') - testCompile 'junit:junit:4.12' - implementation 'com.android.support:appcompat-v7:23.4.0' - implementation 'com.google.android.gms:play-services:10.2.0' + implementation 'com.android.support:design:28.0.0' + implementation fileTree(include: ['*.jar'], dir: 'libs') + testImplementation 'junit:junit:4.12' + implementation 'com.android.support:appcompat-v7:28.0.0' + implementation 'com.google.android.gms:play-services:12.0.1' implementation 'com.android.support.constraint:constraint-layout:1.1.3' implementation 'org.apmem.tools:layouts:1.10@aar' //compile 'com.google.android.support:wearable:1.3.0' diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index de7f3dc..553e304 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -10,10 +10,9 @@ - + - = Build.VERSION_CODES.LOLLIPOP) { diff --git a/app/src/main/java/de/fhws/indoor/sensorreadout/sensors/PhoneSensors.java b/app/src/main/java/de/fhws/indoor/sensorreadout/sensors/PhoneSensors.java index ebd04e9..a3bc8bd 100644 --- a/app/src/main/java/de/fhws/indoor/sensorreadout/sensors/PhoneSensors.java +++ b/app/src/main/java/de/fhws/indoor/sensorreadout/sensors/PhoneSensors.java @@ -24,7 +24,7 @@ import java.io.IOException; */ public class PhoneSensors extends mySensor implements SensorEventListener{ - private static final int SENSOR_TYPE_HEARTRATE = 65562; + //private static final int SENSOR_TYPE_HEARTRATE = 65562; private SensorManager sensorManager; private Sensor acc; @@ -34,7 +34,7 @@ public class PhoneSensors extends mySensor implements SensorEventListener{ private Sensor magnet; private Sensor press; private Sensor ori; - private Sensor heart; + //private Sensor heart; private Sensor humidity; private Sensor rotationVector; private Sensor light; @@ -61,7 +61,7 @@ public class PhoneSensors extends mySensor implements SensorEventListener{ magnet = sensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD); press = sensorManager.getDefaultSensor(Sensor.TYPE_PRESSURE); ori = sensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION); - heart = sensorManager.getDefaultSensor(Sensor.TYPE_HEART_RATE); + //heart = sensorManager.getDefaultSensor(Sensor.TYPE_HEART_RATE); humidity = sensorManager.getDefaultSensor(Sensor.TYPE_RELATIVE_HUMIDITY); rotationVector = sensorManager.getDefaultSensor(Sensor.TYPE_ROTATION_VECTOR); light = sensorManager.getDefaultSensor(Sensor.TYPE_LIGHT); @@ -103,7 +103,7 @@ public class PhoneSensors extends mySensor implements SensorEventListener{ dumpSensor(sb, SensorType.ORIENTATION_OLD, ori); dumpSensor(sb, SensorType.LIGHT, light); dumpSensor(sb, SensorType.AMBIENT_TEMPERATURE, temperature); - dumpSensor(sb, SensorType.HEART_RATE, heart); + //dumpSensor(sb, SensorType.HEART_RATE, heart); dumpSensor(sb, SensorType.GAME_ROTATION_VECTOR, gameRotationVector); // write @@ -156,16 +156,16 @@ public class PhoneSensors extends mySensor implements SensorEventListener{ } - if(event.sensor.getType() == Sensor.TYPE_HEART_RATE) { - - // inform listeners - if (listener != null){ - listener.onData(SensorType.HEART_RATE, event.timestamp, - Float.toString(event.values[0]) - ); - } - - } +// if(event.sensor.getType() == Sensor.TYPE_HEART_RATE) { +// +// // inform listeners +// if (listener != null){ +// listener.onData(SensorType.HEART_RATE, event.timestamp, +// Float.toString(event.values[0]) +// ); +// } +// +// } else if(event.sensor.getType() == Sensor.TYPE_LIGHT) { @@ -410,7 +410,7 @@ public class PhoneSensors extends mySensor implements SensorEventListener{ registerIfPresent(magnet, SensorManager.SENSOR_DELAY_FASTEST); registerIfPresent(press, SensorManager.SENSOR_DELAY_FASTEST); registerIfPresent(ori, SensorManager.SENSOR_DELAY_FASTEST); - registerIfPresent(heart, SensorManager.SENSOR_DELAY_FASTEST); + //registerIfPresent(heart, SensorManager.SENSOR_DELAY_FASTEST); registerIfPresent(humidity, SensorManager.SENSOR_DELAY_FASTEST); registerIfPresent(rotationVector, SensorManager.SENSOR_DELAY_FASTEST); registerIfPresent(light, SensorManager.SENSOR_DELAY_FASTEST); 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 9b78cdf..3597aba 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 @@ -5,18 +5,24 @@ import android.bluetooth.BluetoothAdapter; import android.bluetooth.BluetoothManager; import android.bluetooth.le.BluetoothLeScanner; import android.bluetooth.le.ScanCallback; +import android.bluetooth.le.ScanFilter; +import android.bluetooth.le.ScanSettings; import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; import android.widget.Toast; +import java.util.ArrayList; +import java.util.List; + /** * Created by Frank on 25.03.2015. */ public class iBeacon extends mySensor { - private BluetoothAdapter bt = null; - private BluetoothLeScanner scanner = null; + private BluetoothAdapter bt; + private BluetoothLeScanner scanner; + private static ScanSettings settings; private static final int REQUEST_ENABLE_BT = 1; private ScanCallback mLeScanCallback; @@ -35,7 +41,9 @@ public class iBeacon extends mySensor { bt = mgr.getAdapter(); // bluetooth supported? - if (bt == null) { + if (bt == null || !bt.isEnabled()) { + + //TODO: add something that asks the user to enable BLE. this need also be called in onResum() Toast.makeText(act, "Bluetooth not supported!", Toast.LENGTH_SHORT).show(); return; } @@ -53,9 +61,15 @@ public class iBeacon extends mySensor { } }; + settings = new ScanSettings.Builder() + .setReportDelay(0) + .setScanMode(ScanSettings.SCAN_MODE_LOW_LATENCY) + .setNumOfMatches(ScanSettings.MATCH_NUM_MAX_ADVERTISEMENT) + .build(); + } - private final void enableBT(final Activity act) { + private void enableBT(final Activity act) { if (bt == null) {throw new RuntimeException("BT not supported!");} if (!bt.isEnabled()) { Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE); @@ -66,7 +80,9 @@ public class iBeacon extends mySensor { @Override public void onResume(final Activity act) { if (bt != null) { enableBT(act); - scanner.startScan(mLeScanCallback); + List filters = new ArrayList(); + scanner.startScan(filters, settings, mLeScanCallback); + //scanner.startScan(mLeScanCallback); } }