Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kotlin 前台服务不在后台更新传感器数据_Kotlin_Android Service_Accelerometer_Android Sensors_Foreground Service - Fatal编程技术网

Kotlin 前台服务不在后台更新传感器数据

Kotlin 前台服务不在后台更新传感器数据,kotlin,android-service,accelerometer,android-sensors,foreground-service,Kotlin,Android Service,Accelerometer,Android Sensors,Foreground Service,我是Android开发的新手,我使用Kotlin创建了一个API版本为29的应用程序。我的主要活动是启动一个前台服务,它执行以下任务 使用获取位置 获取传感器数据(加速计和陀螺仪) 在通知中显示上述信息 应用程序应该在后台获取位置和传感器信息,并更新通知 当主活动应用程序运行时,应用程序当前正在更新传感器和位置数据。一旦主活动关闭,位置数据将在通知中更新,但传感器数据不会更新。我读过一些QnA课程(包括),但我无法理解这个问题 启动服务的代码: val serviceIntent = Int

我是Android开发的新手,我使用Kotlin创建了一个API版本为29的应用程序。我的主要活动是启动一个前台服务,它执行以下任务

  • 使用获取位置
  • 获取传感器数据(加速计和陀螺仪)
  • 在通知中显示上述信息
应用程序应该在后台获取位置和传感器信息,并更新通知

当主活动应用程序运行时,应用程序当前正在更新传感器和位置数据。一旦主活动关闭,位置数据将在通知中更新,但传感器数据不会更新。我读过一些QnA课程(包括),但我无法理解这个问题

启动服务的代码:

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" />
<service android:name=".MyBackgroundService"
        android:enabled="true"
        android:exported="true"
        android:foregroundServiceType="location"
        android:icon="@drawable/logo"
        android:process=":MyBackgroundServiceProcess"/>
清单中的权限和功能:

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" />
<service android:name=".MyBackgroundService"
        android:enabled="true"
        android:exported="true"
        android:foregroundServiceType="location"
        android:icon="@drawable/logo"
        android:process=":MyBackgroundServiceProcess"/>

清单中的前台服务:

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" />
<service android:name=".MyBackgroundService"
        android:enabled="true"
        android:exported="true"
        android:foregroundServiceType="location"
        android:icon="@drawable/logo"
        android:process=":MyBackgroundServiceProcess"/>

我想知道是否有
foregroundServiceType
可以在主活动关闭时连续获取传感器值