Я создал приложение Flutter для Android Auto, которое отображает диаграмму на экране телефона, а затем отображает ту же диаграмму на экране АА в машине. У него есть стандартная Flutter MainActivity и услуга, предоставляемая мной. Если я коснусь значка на телефоне, Android запустит и действие, и службу. Но если я запускаю приложение с дисплея автомобиля, АА запускает только сервис. Чтобы это исправить, я попытался запустить MainActiviy из службы с помощью
val intent = Intent(carContext, MainActivity::class.java).apply {
addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
}
val pendingIntent : PendingIntent = PendingIntent.getActivity(
carContext,
0,
intent,
PendingIntent.FLAG_IMMUTABLE
)
// Check Android version before calling the method
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
val options = ActivityOptions.makeBasic()
options.setPendingIntentBackgroundActivityStartMode(
ActivityOptions.MODE_BACKGROUND_ACTIVITY_START_ALLOWED)
pendingIntent.send(options.toBundle())
} else {
pendingIntent.send()
}
В манифесте у меня есть стандартные строки Flutter
Теперь он работает на эмулированном API Pixel 8a 33. Поэтому MODE_BACKGROUND_ACTIVITY_START_ALLOWED ему не нужен. Но на настоящем Galaxy Watch S10e API 31 не работает! Ничего не происходит. Почему?? Я получаю сообщения журнала ниже. В предупреждении говорится, чтоallowBackgroundActivityStart: false. Если проблема в этом, то для использования MODE_BACKGROUND_ACTIVITY_START_ALLOWED требуется API 34. Как заставить его работать и с API 31?
2025-01-14 11:54:54.751 31406-31406 CarApp.H pid-31406 I App: [se.ndssoft.autoglucose/.CarHomeService] app info: [Library version: [1.7.0-beta03] Min Car Api Level: [1] Latest Car App Api Level: [8]] Host min api: [1] Host max api: [7] [CONTEXT ratelimit_period="5 SECONDS" skipped=94 ]
2025-01-14 11:54:54.752 31406-31406 CarApp.H pid-31406 D App: [se.ndssoft.autoglucose/.CarHomeService], Host negotiated api: [7] [CONTEXT ratelimit_period="5 SECONDS" skipped=94 ]
2025-01-14 11:54:54.788 6130-6130 Compatibil...geReporter se.ndssoft.autoglucose D Compat change id reported: 160794467; UID 11536; state: ENABLED
2025-01-14 11:54:54.807 969-4019 ActivityTaskManager pid-969 I START u0 {flg=0x10000000 cmp=se.ndssoft.autoglucose/.MainActivity} from uid 11536
2025-01-14 11:54:54.814 969-4019 ActivityTaskManager pid-969 W Background activity start [callingPackage: se.ndssoft.autoglucose; callingUid: 11536; appSwitchAllowed: true; isCallingUidForeground: true; callingUidHasAnyVisibleWindow: false; callingUidProcState: BOUND_TOP; isCallingUidPersistentSystemProcess: false; realCallingUid: 11536; isRealCallingUidForeground: true; realCallingUidHasAnyVisibleWindow: false; realCallingUidProcState: BOUND_TOP; isRealCallingUidPersistentSystemProcess: false; originatingPendingIntent: PendingIntentRecord{952b2d8 se.ndssoft.autoglucose startActivity}; allowBackgroundActivityStart: false; intent: Intent { flg=0x10000000 cmp=se.ndssoft.autoglucose/.MainActivity }; callerApp: ProcessRecord{f53a5b7 6130:se.ndssoft.autoglucose/u0a1536}; inVisibleTask: false]
2025-01-14 11:54:54.819 969-4019 ActivityTaskManager pid-969 D TaskLaunchParamsModifier:task=null activity=ActivityRecord{d4b3a97 u0 se.ndssoft.autoglucose/.MainActivity display-id=0 display-windowing-mode=1 suggested-display-area=DefaultTaskDisplayArea@115968570
2025-01-14 11:54:54.820 969-4019 [secipm] pid-969 D mSecIpmManager Preload se.ndssoft.autoglucose dex files
2025-01-14 11:54:54.823 969-4019 ActivityTaskManager pid-969 D TaskLaunchParamsModifier:task=null activity=ActivityRecord{d4b3a97 u0 se.ndssoft.autoglucose/.MainActivity t-1} display-id=0 display-windowing-mode=1 suggested-display-area=DefaultTaskDisplayArea@115968570 non-freeform-display display-area=DefaultTaskDisplayArea@115968570 maximized-bounds
2025-01-14 11:54:54.823 969-2523 PkgPredict...Controller pid-969 D create a new DexPreloadTask pkg:se.ndssoft.autoglucose path:/data/app/~~TMfK3jVa236aEXamP4Tehw==/se.ndssoft.autoglucose-975VscmnCKXNJVH5wiZSMw==
2025-01-14 11:54:54.824 969-4019 ActivityManager pid-969 D Received ACTIVITY intent 0x952b2d8 Key{startActivity pkg=se.ndssoft.autoglucose intent=flg=0x10000000 cmp=se.ndssoft.autoglucose/.MainActivity flags=0x4000000 u=0} requestCode=0 res=0 from uid 11536
2025-01-14 11:54:54.829 969-2523 PkgPredict...Controller pid-969 D /data/app/~~TMfK3jVa236aEXamP4Tehw==/se.ndssoft.autoglucose-975VscmnCKXNJVH5wiZSMw==/oat/arm64/base.odex is already preloaded
Подробнее здесь: https://stackoverflow.com/questions/793 ... om-service
Невозможно запустить активность из службы ⇐ Android
Форум для тех, кто программирует под Android
1736862121
Anonymous
Я создал приложение Flutter для Android Auto, которое отображает диаграмму на экране телефона, а затем отображает ту же диаграмму на экране АА в машине. У него есть стандартная Flutter MainActivity и услуга, предоставляемая мной. Если я коснусь значка на телефоне, Android запустит и действие, и службу. Но если я запускаю приложение с дисплея автомобиля, АА запускает только сервис. Чтобы это исправить, я попытался запустить MainActiviy из службы с помощью
val intent = Intent(carContext, MainActivity::class.java).apply {
addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
}
val pendingIntent : PendingIntent = PendingIntent.getActivity(
carContext,
0,
intent,
PendingIntent.FLAG_IMMUTABLE
)
// Check Android version before calling the method
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
val options = ActivityOptions.makeBasic()
options.setPendingIntentBackgroundActivityStartMode(
ActivityOptions.MODE_BACKGROUND_ACTIVITY_START_ALLOWED)
pendingIntent.send(options.toBundle())
} else {
pendingIntent.send()
}
В манифесте у меня есть стандартные строки Flutter
Теперь он работает на эмулированном API Pixel 8a 33. Поэтому MODE_BACKGROUND_ACTIVITY_START_ALLOWED ему не нужен. Но на настоящем Galaxy Watch S10e API 31 не работает! Ничего не происходит. Почему?? Я получаю сообщения журнала ниже. В предупреждении говорится, чтоallowBackgroundActivityStart: false. Если проблема в этом, то для использования MODE_BACKGROUND_ACTIVITY_START_ALLOWED требуется API 34. Как заставить его работать и с API 31?
2025-01-14 11:54:54.751 31406-31406 CarApp.H pid-31406 I App: [se.ndssoft.autoglucose/.CarHomeService] app info: [Library version: [1.7.0-beta03] Min Car Api Level: [1] Latest Car App Api Level: [8]] Host min api: [1] Host max api: [7] [CONTEXT ratelimit_period="5 SECONDS" skipped=94 ]
2025-01-14 11:54:54.752 31406-31406 CarApp.H pid-31406 D App: [se.ndssoft.autoglucose/.CarHomeService], Host negotiated api: [7] [CONTEXT ratelimit_period="5 SECONDS" skipped=94 ]
2025-01-14 11:54:54.788 6130-6130 Compatibil...geReporter se.ndssoft.autoglucose D Compat change id reported: 160794467; UID 11536; state: ENABLED
2025-01-14 11:54:54.807 969-4019 ActivityTaskManager pid-969 I START u0 {flg=0x10000000 cmp=se.ndssoft.autoglucose/.MainActivity} from uid 11536
2025-01-14 11:54:54.814 969-4019 ActivityTaskManager pid-969 W Background activity start [callingPackage: se.ndssoft.autoglucose; callingUid: 11536; appSwitchAllowed: true; isCallingUidForeground: true; callingUidHasAnyVisibleWindow: false; callingUidProcState: BOUND_TOP; isCallingUidPersistentSystemProcess: false; realCallingUid: 11536; isRealCallingUidForeground: true; realCallingUidHasAnyVisibleWindow: false; realCallingUidProcState: BOUND_TOP; isRealCallingUidPersistentSystemProcess: false; originatingPendingIntent: PendingIntentRecord{952b2d8 se.ndssoft.autoglucose startActivity}; allowBackgroundActivityStart: false; intent: Intent { flg=0x10000000 cmp=se.ndssoft.autoglucose/.MainActivity }; callerApp: ProcessRecord{f53a5b7 6130:se.ndssoft.autoglucose/u0a1536}; inVisibleTask: false]
2025-01-14 11:54:54.819 969-4019 ActivityTaskManager pid-969 D TaskLaunchParamsModifier:task=null activity=ActivityRecord{d4b3a97 u0 se.ndssoft.autoglucose/.MainActivity display-id=0 display-windowing-mode=1 suggested-display-area=DefaultTaskDisplayArea@115968570
2025-01-14 11:54:54.820 969-4019 [secipm] pid-969 D mSecIpmManager Preload se.ndssoft.autoglucose dex files
2025-01-14 11:54:54.823 969-4019 ActivityTaskManager pid-969 D TaskLaunchParamsModifier:task=null activity=ActivityRecord{d4b3a97 u0 se.ndssoft.autoglucose/.MainActivity t-1} display-id=0 display-windowing-mode=1 suggested-display-area=DefaultTaskDisplayArea@115968570 non-freeform-display display-area=DefaultTaskDisplayArea@115968570 maximized-bounds
2025-01-14 11:54:54.823 969-2523 PkgPredict...Controller pid-969 D create a new DexPreloadTask pkg:se.ndssoft.autoglucose path:/data/app/~~TMfK3jVa236aEXamP4Tehw==/se.ndssoft.autoglucose-975VscmnCKXNJVH5wiZSMw==
2025-01-14 11:54:54.824 969-4019 ActivityManager pid-969 D Received ACTIVITY intent 0x952b2d8 Key{startActivity pkg=se.ndssoft.autoglucose intent=flg=0x10000000 cmp=se.ndssoft.autoglucose/.MainActivity flags=0x4000000 u=0} requestCode=0 res=0 from uid 11536
2025-01-14 11:54:54.829 969-2523 PkgPredict...Controller pid-969 D /data/app/~~TMfK3jVa236aEXamP4Tehw==/se.ndssoft.autoglucose-975VscmnCKXNJVH5wiZSMw==/oat/arm64/base.odex is already preloaded
Подробнее здесь: [url]https://stackoverflow.com/questions/79346254/cannot-start-activity-from-service[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия