при запросе разрешения на начальном этапе мое приложение вылетает, но когда пользователь разрешает разрешение через некоторое время, мое приложение вылетает. Я вызываю эти две функции при инициализации.
Ошибка при сбое
java.lang.IllegalStateException: Reply already submitted
at io.flutter.embedding.engine.dart.DartMessenger$Reply.reply(DartMessenger.java:435)
at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler$1.success(MethodChannel.java:272)
at how.virc.flutter_esp_ble_prov.BleScanManager$call$1.scanCompleted(FlutterEspBleProvPlugin.kt:255)
at com.espressif.provisioning.device_scanner.BleScanner.stopScan(BleScanner.java:144)
at com.espressif.provisioning.device_scanner.BleScanner$1.run(BleScanner.java:161)
at android.os.Handler.handleCallback(Handler.java:958)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:230)
at android.os.Looper.loop(Looper.java:319)
at android.app.ActivityThread.main(ActivityThread.java:8893)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:608)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1103)
void startListeningToScannedResults() async {
// Check platform support and necessary requirements
final can = await WiFiScan.instance.canGetScannedResults(askPermissions: true);
switch (can) {
case CanGetScannedResults.yes:
// Check if the subscription is null before creating a new one
if (subscription == null) {
subscription = WiFiScan.instance.onScannedResultsAvailable.listen((results) {
accessPoints = results;
uniqueWifiList.value = {...accessPoints.map((WiFiAccessPoint) => WiFiAccessPoint.ssid)}.where((ssid) => ssid != null).cast().toList();
if (selectedWifiName.value == '') {
selectedWifiName.value = uniqueWifiList[0];
}
});
}
break;
// Handle other cases as needed
}
}
void scanBleDevices() async {
final prefix = deviceNamecontroller.text;
print("PREFIX : $prefix");
if (isSetupButtonPressed.value) {
print("Scan operation already in progress");
return;
}
try {
isSetupButtonPressed.value = true;
final scannedDevices = await _flutterEspBleProvPlugin.scanBleDevices(prefix);
bleDevicesList.value = scannedDevices;
if (selectedDeviceName.value.isEmpty && bleDevicesList.isNotEmpty) {
selectedDeviceName.value = bleDevicesList.first;
}
} catch (error) {
// Handle any errors that occur during BLE scanning
print("Error during BLE scanning: $error");
Get.snackbar(
"Error",
"Failed to scan BLE devices: $error",
snackPosition: SnackPosition.BOTTOM,
);
} finally {
// Reset the flag indicating that the scan operation is complete
isSetupButtonPressed.value = false;
}
}
Я интегрирую ESP Ble Provisioning. Я просто хочу получить разрешение пользователя, и тогда все должно работать правильно.
при запросе разрешения на начальном этапе мое приложение вылетает, но когда пользователь разрешает разрешение через некоторое время, мое приложение вылетает. Я вызываю эти две функции при инициализации. Ошибка при сбое[code]java.lang.IllegalStateException: Reply already submitted at io.flutter.embedding.engine.dart.DartMessenger$Reply.reply(DartMessenger.java:435) at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler$1.success(MethodChannel.java:272) at how.virc.flutter_esp_ble_prov.BleScanManager$call$1.scanCompleted(FlutterEspBleProvPlugin.kt:255) at com.espressif.provisioning.device_scanner.BleScanner.stopScan(BleScanner.java:144) at com.espressif.provisioning.device_scanner.BleScanner$1.run(BleScanner.java:161) at android.os.Handler.handleCallback(Handler.java:958) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loopOnce(Looper.java:230) at android.os.Looper.loop(Looper.java:319) at android.app.ActivityThread.main(ActivityThread.java:8893) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:608) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1103) [/code] Это мой код. [code]void startListeningToScannedResults() async { // Check platform support and necessary requirements final can = await WiFiScan.instance.canGetScannedResults(askPermissions: true); switch (can) { case CanGetScannedResults.yes: // Check if the subscription is null before creating a new one if (subscription == null) { subscription = WiFiScan.instance.onScannedResultsAvailable.listen((results) { accessPoints = results; uniqueWifiList.value = {...accessPoints.map((WiFiAccessPoint) => WiFiAccessPoint.ssid)}.where((ssid) => ssid != null).cast().toList(); if (selectedWifiName.value == '') { selectedWifiName.value = uniqueWifiList[0]; } }); } break; // Handle other cases as needed } } void scanBleDevices() async { final prefix = deviceNamecontroller.text; print("PREFIX : $prefix");
if (isSetupButtonPressed.value) { print("Scan operation already in progress"); return; }
try { isSetupButtonPressed.value = true;
final scannedDevices = await _flutterEspBleProvPlugin.scanBleDevices(prefix);
bleDevicesList.value = scannedDevices;
if (selectedDeviceName.value.isEmpty && bleDevicesList.isNotEmpty) { selectedDeviceName.value = bleDevicesList.first; } } catch (error) { // Handle any errors that occur during BLE scanning print("Error during BLE scanning: $error"); Get.snackbar( "Error", "Failed to scan BLE devices: $error", snackPosition: SnackPosition.BOTTOM, ); } finally { // Reset the flag indicating that the scan operation is complete isSetupButtonPressed.value = false; } } [/code] Я интегрирую ESP Ble Provisioning. Я просто хочу получить разрешение пользователя, и тогда все должно работать правильно.
Мне действительно нужна помощь в этом. Я пробую это уже много дней и до сих пор не могу понять проблему.
Когда я запускаю это приложение в симуляторе iOS, оно работает нормально, но когда я запускаю его на любом устройстве Android, оно работает...
Мне действительно нужна помощь в этом. Я пробую это уже много дней и до сих пор не могу понять проблему.
Когда я запускаю это приложение в симуляторе iOS, оно работает нормально, но когда я запускаю его на любом устройстве Android, оно работает...
Я работаю над приложением ASP.NET Core MVC. У меня есть представление с полем загрузки (загрузка фотографии), и когда я нажимаю на него и открываю файл, приложение просто останавливается и нигде не показывает никаких сообщений об ошибках. Что это...
Я работаю над приложением ASP.NET Core MVC. У меня есть представление с полем загрузки (загрузка фотографии), и когда я нажимаю на него и открываю файл, приложение просто останавливается и нигде не показывает никаких сообщений об ошибках. Что это...
Я работаю над приложением ASP.NET Core MVC. У меня есть представление с полем загрузки (загрузка фотографии), и когда я нажимаю на него и открываю файл, приложение просто останавливается и нигде не показывает никаких сообщений об ошибках. Что это...