我是 Android 开发的新手,我使用 Kotlin 使用 API version 29
创建了一个应用程序。我的主要活动是启动执行以下任务的前台服务。
应用程序应该在后台获取位置和传感器信息并更新通知。
当主活动应用程序运行时,应用程序当前正在更新传感器和位置数据。关闭主活动后,通知中的位置数据会更新,但传感器数据不会更新。我已经阅读了一些 QnA 会话(包括 this),但我无法找出问题所在。
启动服务的代码:
val serviceIntent = Intent(this, MyBackgroundService::class.java);
serviceIntent.setAction(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS);
startForegroundService(serviceIntent);
清单中的权限和功能:
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_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.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" />
<uses-permission android:name="android.permission.ACTIVITY_RECOGNITION" />
<uses-feature android:name="android.hardware.sensor.accelerometer" android:required="true" />
<uses-feature android:name="android.hardware.sensor.gyroscope" android:required="true" />
Manifest 中的前台服务:
<service android:name=".MyBackgroundService"
android:enabled="true"
android:exported="true"
android:foregroundServiceType="location"
android:icon="@drawable/logo"
android:process=":MyBackgroundServiceProcess"/>
我想知道是否有任何 foregroundServiceType
可以在 Main Activity 关闭时持续获取 Sensor 值。