Open builtbybrayne opened 8 months ago
FWIW, I am aware of https://github.com/X-SLAYER/flutter_accessibility_service/issues/12 and did follow the advice to move all the accessibility requests to the main activity.
However, by definition my foreground service exists only to watch the accessibility event stream - opening our app if certain conditions are met. Hence, the only call I make in the foreground service is invoking FlutterAccessibilityService.accessStream
.
Also, Flutter Doctor output here, for versions etc:
/usr/local/opt/flutter/bin/flutter doctor --verbose
[✓] Flutter (Channel stable, 3.16.8, on macOS 13.5.2 22G91 darwin-arm64, locale en-GB)
• Flutter version 3.16.8 on channel stable at /usr/local/opt/flutter
• Upstream repository https://github.com/flutter/flutter.git
• Framework revision 67457e669f (4 weeks ago), 2024-01-16 16:22:29 -0800
• Engine revision 6e2ea58a5c
• Dart version 3.2.5
• DevTools version 2.28.5
[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
• Android SDK at /Users/al/Library/Android/sdk
• Platform android-34, build-tools 34.0.0
• Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
• Java version OpenJDK Runtime Environment (build 17.0.7+0-17.0.7b1000.6-10550314)
• All Android licenses accepted.
[✗] Xcode - develop for iOS and macOS
✗ Xcode installation is incomplete; a full installation is necessary for iOS and macOS development.
Download at: https://developer.apple.com/xcode/
Or install Xcode via the App Store.
Once installed, run:
sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
sudo xcodebuild -runFirstLaunch
✗ CocoaPods not installed.
CocoaPods is used to retrieve the iOS and macOS platform side's plugin code that responds to your plugin usage on the Dart side.
Without CocoaPods, plugins will not work on iOS or macOS.
For more info, see https://flutter.dev/platform-plugins
To install see https://guides.cocoapods.org/using/getting-started.html#installation for instructions.
[✓] Chrome - develop for the web
• Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
[✓] Android Studio (version 2023.1)
• Android Studio at /Applications/Android Studio.app/Contents
• Flutter plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/9212-flutter
• Dart plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/6351-dart
• Java version OpenJDK Runtime Environment (build 17.0.7+0-17.0.7b1000.6-10550314)
[✓] IntelliJ IDEA Ultimate Edition (version 2023.3.2)
• IntelliJ at /Users/al/Applications/IntelliJ IDEA Ultimate.app
• Flutter plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/9212-flutter
• Dart plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/6351-dart
[✓] Connected device (2 available)
• macOS (desktop) • macos • darwin-arm64 • macOS 13.5.2 22G91 darwin-arm64
• Chrome (web) • chrome • web-javascript • Google Chrome 121.0.6167.160
[✓] Network resources
• All expected network resources are available.
! Doctor found issues in 1 category.
Process finished with exit code 0
I'm also facing the same issue when i'm calling stream foreground service any fix....?
@X-SLAYER any fix...?
i will try to investigate on this problem
i will try to investigate on this problem
@X-SLAYER any solution
I found a workaround that worked for me (tested with flutter_background_service
).
When your app is loaded, execute the below command in your main thread (after checking for permissions):
await FlutterAccessibilityService.getSystemActions();
This will resolve the error and prevent the app from crashing when exited.
See extended example:
@override
void initState() {
requestNotificationsPermission();
super.initState();
}
Future<void> requestNotificationsPermission() async {
hasAccessibilityPermission =
await FlutterAccessibilityService.isAccessibilityPermissionEnabled();
if (!hasAccessibilityPermission) {
hasAccessibilityPermission =
await FlutterAccessibilityService.requestAccessibilityPermission();
}
if (hasAccessibilityPermission) {
await FlutterAccessibilityService.getSystemActions();
}
}
Start fine, but there's some sort of lifecycle issues which inevitably cause it to loop-crash.
I've tried a few different approaches to handle the lifecycles, initialisation, and isolate management, but I have been unable to find an incantation that prevents these errors:
These errors have been preventing us from launching our app for many months now and I simply cannot find a way round them. Any help would be gratefully appreciated! Absolutely mission critical.
FYI: our foreground service runner is https://pub.dev/packages/flutter_foreground_task.
Error 1
Error 2
Error 3
Error 3