You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[screen_state: ^3.0.1]W/FlutterJNI(14854): Tried to send a platform message to Flutter, but FlutterJNI was detached from native C++. Could not send. Channel: screenStateEvents. Response ID: 23
#955
Open
Zubairpv opened this issue
May 2, 2024
· 2 comments
"Tried to send a platform message to Flutter, but FlutterJNI was detached from native C++." After start a background service and closes the app every detection throwing this error i need work this in background too
code
// Method to start listening to screen events
Future startListening(String para) async {
try {
// Check if beneficiary data is available
if (beneficiaryLocalService.box.hasData("beneficiary")) {
debugPrint("nujmbjnj");
// Retrieve beneficiary data from local storage
BenefiiciaryModel benefiiciaryModel =
beneficiaryLocalService.retrieveFromGetStorage();
// Start noise service for detecting beneficiary activity
// Subscribe to screen state events
_screen.screenStateStream!.listen((event) {
onData(event, benefiiciaryModel, para);
});
// Set iscanalert to true, indicating that alerts can be sent
iscanalert = true;
} else {
// Debug print if beneficiary data is not available
debugPrint(
beneficiaryLocalService.box.hasData("beneficiary").toString());
}
} on ScreenStateException catch (exception) {
// Handle ScreenStateException if any
debugPrint(exception.toString());
}
}
// Method to handle screen state events
void onData(ScreenStateEvent event, BenefiiciaryModel benefiiciaryModel,
String para) {
debugPrint("ondata");
// If the screen is turned off
if (event == ScreenStateEvent.SCREEN_OFF) {
debugPrint('object');
// Update beneficiary inactivity details in the database
beneficiaryDatabaseService.inactivityDetailsUpdate(
benefiiciaryModel.memberUid,
{"lastlockedtime": DateTime.now().toString()});
// Start the timer for the beneficiary
startTimer(benefiiciaryModel, para);
}
// If the screen is unlocked
else if (event == ScreenStateEvent.SCREEN_UNLOCKED) {
try {
// Cancel the timer if it's running
timer == null
? () {
debugPrint("nu");
}
: timer!.cancel();
} catch (e) {
// Handle any exceptions if occurred
debugPrint(e.toString());
}
debugPrint(timer!.tick.toString());
debugPrint('unloacked');
// Update beneficiary inactivity details in the database
beneficiaryDatabaseService
.inactivityDetailsUpdate(benefiiciaryModel.memberUid, {
"lastunlockedtime": DateTime.now().toString(),
"lastInactivityhours": timer == null ? 0 : timer!.tick
});
}
}
//calling on background
// Function to initialize the background service
Future initializeService() async {
final service = FlutterBackgroundService();
// Start the background service
service.startService();
}
// Entry point for the background service @pragma('vm-entry-point')
Future onStart(ServiceInstance service) async {
// Ensure that Dart plugin is initialized
DartPluginRegistrant.ensureInitialized();
// If the service is an instance of AndroidServiceInstance
if (service is AndroidServiceInstance) {
// Listen for events to set the service as foreground or background
service.on('setAsForeground').listen((event) {
service.setAsForegroundService();
});
service.on('setAsBackground').listen((event) {
service.setAsBackgroundService();
});
}
// Listen for event to stop the service
service.on('stopService').listen((event) {
service.stopSelf();
});
// If the service is an instance of AndroidServiceInstance
if (service is AndroidServiceInstance) {
// Check if the service is running in foreground
if (await service.isForegroundService()) {
// Initialize Firebase and GetStorage
await Firebase.initializeApp(
options: DefaultFirebaseOptions.currentPlatform);
await GetStorage.init();
// Start listening for screen events in the background
ScreenTimerServices screenTimerServices = ScreenTimerServices();
await screenTimerServices.startListening("background");
debugPrint('Background service started');
} else {
debugPrint('Background service not in foreground');
}
}
}
The text was updated successfully, but these errors were encountered:
Zubairpv
changed the title
screen_state: ^3.0.1
[screen_state: ^3.0.1]W/FlutterJNI(14854): Tried to send a platform message to Flutter, but FlutterJNI was detached from native C++. Could not send. Channel: screenStateEvents. Response ID: 23
May 10, 2024
"Tried to send a platform message to Flutter, but FlutterJNI was detached from native C++." After start a background service and closes the app every detection throwing this error i need work this in background too
code
}
// Method to handle screen state events
void onData(ScreenStateEvent event, BenefiiciaryModel benefiiciaryModel,
String para) {
debugPrint("ondata");
// If the screen is turned off
if (event == ScreenStateEvent.SCREEN_OFF) {
debugPrint('object');
// Update beneficiary inactivity details in the database
beneficiaryDatabaseService.inactivityDetailsUpdate(
benefiiciaryModel.memberUid,
{"lastlockedtime": DateTime.now().toString()});
// Start the timer for the beneficiary
startTimer(benefiiciaryModel, para);
}
// If the screen is unlocked
else if (event == ScreenStateEvent.SCREEN_UNLOCKED) {
try {
// Cancel the timer if it's running
timer == null
? () {
debugPrint("nu");
}
: timer!.cancel();
} catch (e) {
// Handle any exceptions if occurred
debugPrint(e.toString());
}
debugPrint(timer!.tick.toString());
debugPrint('unloacked');
// Update beneficiary inactivity details in the database
beneficiaryDatabaseService
.inactivityDetailsUpdate(benefiiciaryModel.memberUid, {
"lastunlockedtime": DateTime.now().toString(),
"lastInactivityhours": timer == null ? 0 : timer!.tick
});
}
}
//calling on background
// Function to initialize the background service
Future initializeService() async {
final service = FlutterBackgroundService();
// Configure background service for Android
await service.configure(
iosConfiguration: IosConfiguration(),
androidConfiguration: AndroidConfiguration(
onStart: onStart,
isForegroundMode: true,
autoStart: true,
autoStartOnBoot: true,
),
);
// Start the background service
service.startService();
}
// Entry point for the background service
@pragma('vm-entry-point')
Future onStart(ServiceInstance service) async {
// Ensure that Dart plugin is initialized
DartPluginRegistrant.ensureInitialized();
// If the service is an instance of AndroidServiceInstance
if (service is AndroidServiceInstance) {
// Listen for events to set the service as foreground or background
service.on('setAsForeground').listen((event) {
service.setAsForegroundService();
});
service.on('setAsBackground').listen((event) {
service.setAsBackgroundService();
});
}
// Listen for event to stop the service
service.on('stopService').listen((event) {
service.stopSelf();
});
// If the service is an instance of AndroidServiceInstance
if (service is AndroidServiceInstance) {
// Check if the service is running in foreground
if (await service.isForegroundService()) {
// Initialize Firebase and GetStorage
await Firebase.initializeApp(
options: DefaultFirebaseOptions.currentPlatform);
await GetStorage.init();
}
}
The text was updated successfully, but these errors were encountered: