gpt4 book ai didi

android - 致命的安卓 12 : Exception: startForegroundService() not allowed due to mAllowStartForeground false

转载 作者:行者123 更新时间:2023-12-04 23:36:07 27 4
gpt4 key购买 nike

我注意到 Pixel 5 和 Pixel 4a(都在 Android 12 上)的一个异常(exception)(Firebase Crashlytics),没有其他设备,只发生了两次,每个设备一次。
这是什么意思? Android 11 和 12 使用前台服务的规则相同,但 Android 11 没有问题。这是 Pixel 的错误吗?
来自 Firebase Crashlytics:

Fatal Exception: android.app.ForegroundServiceStartNotAllowedException
startForegroundService() not allowed due to mAllowStartForeground false: service com.helge.droiddashcam/.service.RecorderService

android.app.ForegroundServiceStartNotAllowedException$1.createFromParcel (ForegroundServiceStartNotAllowedException.java:54)
androidx.core.content.ContextCompat.startForegroundService (ContextCompat.java:6)
MyAppPackageHidden.service.RecorderService$Companion.startService (RecorderService.java:2)
MyAppPackageHidden.ui.rec.RecActivity$getConnectionRecorderService$1.onServiceConnected (RecActivity.java:4)
android.app.LoadedApk$ServiceDispatcher.doConnected (LoadedApk.java:2077)
com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1003)

Fatal Exception: android.app.ForegroundServiceStartNotAllowedException: startForegroundService() not allowed due to mAllowStartForeground false: service MyAppPackageHidden/.service.RecorderService
at android.app.ForegroundServiceStartNotAllowedException$1.createFromParcel(ForegroundServiceStartNotAllowedException.java:54)
at android.app.ForegroundServiceStartNotAllowedException$1.createFromParcel(ForegroundServiceStartNotAllowedException.java:50)
at android.os.Parcel.readParcelable(Parcel.java:3333)
at android.os.Parcel.createExceptionOrNull(Parcel.java:2420)
at android.os.Parcel.createException(Parcel.java:2409)
at android.os.Parcel.readException(Parcel.java:2392)
at android.os.Parcel.readException(Parcel.java:2334)
at android.app.IActivityManager$Stub$Proxy.startService(IActivityManager.java:5971)
at android.app.ContextImpl.startServiceCommon(ContextImpl.java:1847)
at android.app.ContextImpl.startForegroundService(ContextImpl.java:1823)
at android.content.ContextWrapper.startForegroundService(ContextWrapper.java:779)
at androidx.core.content.ContextCompat$Api26Impl.startForegroundService(ContextCompat.java)
at androidx.core.content.ContextCompat.startForegroundService(ContextCompat.java:6)
at MyAppPackageHidden.service.RecorderService$Companion.startService(RecorderService.java:2)
at MyAppPackageHidden.ui.rec.RecActivity$getConnectionRecorderService$1.onServiceConnected(RecActivity.java:4)
at android.app.LoadedApk$ServiceDispatcher.doConnected(LoadedApk.java:2077)
at android.app.LoadedApk$ServiceDispatcher$RunConnection.run(LoadedApk.java:2110)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:201)
at android.os.Looper.loop(Looper.java:288)
at android.app.ActivityThread.main(ActivityThread.java:7838)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)

Caused by android.os.RemoteException: Remote stack trace:
at com.android.server.am.ActiveServices.startServiceLocked(ActiveServices.java:691)
at com.android.server.am.ActiveServices.startServiceLocked(ActiveServices.java:616)
at com.android.server.am.ActivityManagerService.startService(ActivityManagerService.java:11839)
at android.app.IActivityManager$Stub.onTransact(IActivityManager.java:2519)
at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:2498)
enter image description here

最佳答案

以 Android 12(API 级别 31)或更高版本为目标的应用程序在后台运行时无法启动前台服务,少数特殊情况除外。如果应用程序在后台运行时尝试启动前台服务,并且前台服务不满足其中一种异常情况,则系统会抛出 ForegroundServiceStartNotAllowedException。
后台启动限制的豁免
在以下情况下,即使您的应用在后台运行,您的应用也可以启动前台服务:

  • 您的应用程序从用户可见状态(例如 Activity )转换。
  • 你的应用可以从后台启动一个 Activity ,除了
    应用程序在现有的后台堆栈中有 Activity 的情况
    任务。
  • 您的应用使用 Firebase Cloud 接收高优先级消息
    消息传递。
  • 用户对与您的应用相关的 UI 元素执行操作。为了
    例如,它们可能与气泡、通知、小部件或
    Activity 。
  • 您的应用程序调用一个确切的警报来完成用户的操作
    要求。
  • 您的应用是设备当前的输入法。
  • 您的应用收到与地理围栏或 Activity 相关的事件
    认识转变。
  • 设备重启并收到 ACTION_BOOT_COMPLETED 后,
    ACTION_LOCKED_BOOT_COMPLETED 或 ACTION_MY_PACKAGE_REPLACED Intent
    广播接收器中的操作。

  • 更多信息请查看 link1 link2

    关于android - 致命的安卓 12 : Exception: startForegroundService() not allowed due to mAllowStartForeground false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70044393/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com