new example: 'wear-os-gps' (meant for use on e.g. a canoe)

This commit is contained in:
pls.153 2022-07-03 14:15:07 +02:00
parent 33d7ed3cce
commit ab22dd809f
50 changed files with 920 additions and 3 deletions

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,62 @@
diff --git a/QtActivity.java b/examples/wear-os/qt-sensor-hack/QtActivity.java
index 9d8c46f..c068042 100644
--- a/QtActivity.java
+++ b/examples/wear-os/qt-sensor-hack/QtActivity.java
@@ -62,8 +62,56 @@ import android.view.accessibility.AccessibilityEvent;
import org.qtproject.qt5.android.QtNative;
-public class QtActivity extends Activity
+// for hack
+import android.hardware.Sensor;
+import android.hardware.SensorEvent;
+import android.hardware.SensorEventListener;
+import android.hardware.SensorManager;
+import android.util.Log;
+
+//public class QtActivity extends Activity
+public class QtActivity extends Activity implements SensorEventListener
{
+ // hack
+ public int _heart_rate_ = 0;
+ public int _heart_rate_accuracy_ = 0;
+ private static final String LQML = "[LQML]";
+
+ // hack
+ public void iniSensors()
+ {
+ try {
+ //Log.d(LQML, "ini heart rate sensor...");
+ SensorManager mSensorManager = (SensorManager)getSystemService(SENSOR_SERVICE);
+ Sensor mHeartRateSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_HEART_RATE);
+ mSensorManager.registerListener(this, mHeartRateSensor, SensorManager.SENSOR_DELAY_NORMAL);
+ //Log.d(LQML, "ini heart rate sensor OK");
+ }
+ catch (Exception e) {
+ //Log.e(LQML, Log.getStackTraceString(e));
+ }
+ }
+
+ // hack
+ @Override
+ public void onAccuracyChanged(Sensor sensor, int accuracy)
+ {
+ if (sensor.getType() == Sensor.TYPE_HEART_RATE) {
+ _heart_rate_accuracy_ = accuracy;
+ //Log.d(LQML, "BPM accuracy: " + _heart_rate_accuracy_);
+ }
+ }
+
+ // hack
+ @Override
+ public void onSensorChanged(SensorEvent event)
+ {
+ if (event.sensor.getType() == Sensor.TYPE_HEART_RATE) {
+ _heart_rate_ = Math.round(event.values[0]);
+ //Log.d(LQML, "BPM: " + _heart_rate_);
+ }
+ }
+
public String APPLICATION_PARAMETERS = null; // use this variable to pass any parameters to your application,
// the parameters must not contain any white spaces
// and must be separated with "\t"

View file

@ -0,0 +1 @@
~/Qt/5.15.2/android/src/android/java/src/org/qtproject/qt5/android/bindings/

View file

@ -0,0 +1,10 @@
HowTo
-----
Hack to add not yet officially supported sensors to Qt:
Just copy `QtActivity.java` to path in `path.txt` (for Qt 5.15);
alternatively apply patch `git.diff`.
See also [cpp/qt.cpp](../cpp/qt.cpp).