forked from upstream-mirrors/OpenTracks
Android14: crash due to missing announcement of ForegroundServiceType.
Fixes #1655.
This commit is contained in:
@@ -41,6 +41,7 @@ limitations under the License.
|
|||||||
android:required="false" />
|
android:required="false" />
|
||||||
|
|
||||||
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
|
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
|
||||||
|
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_CONNECTED_DEVICE" />
|
||||||
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
|
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
|
||||||
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
|
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
|
||||||
<uses-permission android:name="android.permission.VIBRATE" />
|
<uses-permission android:name="android.permission.VIBRATE" />
|
||||||
|
|||||||
@@ -18,6 +18,8 @@ package de.dennisguse.opentracks.services;
|
|||||||
|
|
||||||
import android.app.Service;
|
import android.app.Service;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
|
import android.content.pm.ServiceInfo;
|
||||||
|
import android.os.Build;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.os.Looper;
|
import android.os.Looper;
|
||||||
import android.os.PowerManager.WakeLock;
|
import android.os.PowerManager.WakeLock;
|
||||||
@@ -205,7 +207,11 @@ public class TrackRecordingService extends Service implements TrackPointCreator.
|
|||||||
private void startSensors() {
|
private void startSensors() {
|
||||||
wakeLock = SystemUtils.acquireWakeLock(this, wakeLock);
|
wakeLock = SystemUtils.acquireWakeLock(this, wakeLock);
|
||||||
trackPointCreator.start(this, handler);
|
trackPointCreator.start(this, handler);
|
||||||
startForeground(TrackRecordingServiceNotificationManager.NOTIFICATION_ID, notificationManager.setGPSonlyStarted(this));
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
|
||||||
|
startForeground(TrackRecordingServiceNotificationManager.NOTIFICATION_ID, notificationManager.setGPSonlyStarted(this), ServiceInfo.FOREGROUND_SERVICE_TYPE_CONNECTED_DEVICE);
|
||||||
|
} else {
|
||||||
|
startForeground(TrackRecordingServiceNotificationManager.NOTIFICATION_ID, notificationManager.setGPSonlyStarted(this));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void endCurrentTrack() {
|
public void endCurrentTrack() {
|
||||||
|
|||||||
+2
-2
@@ -25,11 +25,11 @@ public class AltitudeCorrectionManager {
|
|||||||
|
|
||||||
public AltitudeCorrectionManager() {
|
public AltitudeCorrectionManager() {
|
||||||
this.altitudeConverterFallback = new EGM2008Internal();
|
this.altitudeConverterFallback = new EGM2008Internal();
|
||||||
this.altitudeConverter = Build.VERSION.SDK_INT >= 34 ? new AltitudeConverter() : null;
|
this.altitudeConverter = Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE ? new AltitudeConverter() : null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void correctAltitude(Context context, TrackPoint trackPoint) {
|
public void correctAltitude(Context context, TrackPoint trackPoint) {
|
||||||
if (Build.VERSION.SDK_INT >= 34 && altitudeConverter != null) {
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE && altitudeConverter != null) {
|
||||||
try {
|
try {
|
||||||
Location loc = trackPoint.getLocation();
|
Location loc = trackPoint.getLocation();
|
||||||
altitudeConverter.addMslAltitudeToLocation(context, loc);
|
altitudeConverter.addMslAltitudeToLocation(context, loc);
|
||||||
|
|||||||
Reference in New Issue
Block a user