Невозможно отправлять запросы GET/POST после подключения к Wi-Fi через мое приложение Flutter.Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Невозможно отправлять запросы GET/POST после подключения к Wi-Fi через мое приложение Flutter.

Сообщение Anonymous »

Я создаю приложение Flutter для подключения к динамику IOT (с Wi-Fi). Мне нужно подключиться к нему и загрузить аудиофайлы с помощью API GET/POST. Если я подключу свой телефон к Wi-Fi динамика, используя опцию Wi-Fi, уже присутствующую в телефоне Android, я смогу загрузить файл через запрос POST. Если я подключусь к динамику Wi-Fi через приложение Flutter с использованием пакета wiflutter, я не смогу выполнить запрос POST.
package:wiflutter/wiflutter.dart'; -- Он подключается к Wi-Fi, но не позволяет мне выполнять запросы GET/POST.
Я также пробовал много других пакетов. Они давно не обновлялись.
Ниже приведены пакеты, которые я пробовал:
'package:wifi_scan/wifi_scan.dart'; -- сканирует только Wi-Fi
package:wifi/wifi.dart'; -- похоже, это устаревший пакет
'package:wifi_connector/wifi_connector.dart'; -- Я получаю сообщение об ошибке, что пакет использует устаревшую версию плагина Kotlin. Кажется, это невозможно обойти.
Код для подключения к Wi-Fi:
import 'package:flutter/material.dart';

import 'package:flutter/widgets.dart';

import 'package:nspeak/RecordingPage.dart';

import 'package:wifi_scan/wifi_scan.dart';

import 'package:wiflutter/wiflutter.dart';

import 'package:wiflutter/enums/enterprise_certificate_enum.dart';

// import 'package:wifi_iot/wifi_iot.dart'; -- doesnt support Null safety, so cant use it.

// import 'package:wifi_connector/wifi_connector.dart'; --it uses older Kotlin plugin version. So cant use it.

// import 'package:wifi_configuration/wifi_configuration.dart'; -- doesnt support Null safety, so cant use it.

// import 'package:wifi/wifi.dart'; -- doesnt support Null safety, so cant use it.

scanNspeakwifi() async{

resultcanstarscan = await WiFiScan.instance.canStartScan();

// print("passed canstartscan : $resultcanstarscan");

if(resultcanstarscan == CanStartScan.yes){

scansuccess = await WiFiScan.instance.startScan();

// print("scan success: $scansuccess");

if (mounted){

ScaffoldMessenger.of(context).showSnackBar(

const SnackBar(

padding: EdgeInsets.only(bottom: 25,),

duration: Durations.extralong4,

backgroundColor: Colors.yellow,

content: Center(child:Text('Scanning in progress', style: TextStyle(fontSize: 15, fontWeight: FontWeight.bold, color: Colors.black),),

)),

);

}

}

else {

if(mounted){

ScaffoldMessenger.of(context).showSnackBar(

const SnackBar(

padding: EdgeInsets.only(bottom: 25,left: 30, right: 30),

duration: Durations.extralong4,

backgroundColor: Colors.red,

content: Center( child: Text('Cannot start scan. Check if all necessary permissions are given!', style: TextStyle(fontSize: 15, fontWeight: FontWeight.bold),),

),

)

);

}

}

cangetresults = await WiFiScan.instance.canGetScannedResults();

// print("Passed cangetresults $cangetresults");

if(cangetresults == CanGetScannedResults.yes ){

scanresults = await WiFiScan.instance.getScannedResults();

if(mounted){

ScaffoldMessenger.of(context).showSnackBar(

const SnackBar(

padding: EdgeInsets.only(bottom: 25, left: 20, right: 20),

duration: Durations.extralong4,

backgroundColor: Colors.green,

content: Center(child: Text('Scan completed! Click on "Get Results" to view nearby Nspeak device', style: TextStyle(fontSize: 15, fontWeight: FontWeight.bold),)),

),

);

}

}

else {

if(mounted){

ScaffoldMessenger.of(context).showSnackBar(

const SnackBar(

padding: EdgeInsets.only(bottom: 25,left: 20, right: 20),

duration: Durations.extralong4,

backgroundColor: Colors.red,

content: Center(child: Text('No scan result available. Check if all necessary permissions are given!', style: TextStyle(fontSize: 15, fontWeight: FontWeight.bold),)),

),

);

}

}

}

getNspeakwifi() async {

var resultsavail = await WiFiScan.instance.onScannedResultsAvailable;

var checkresult = await resultsavail.isEmpty;

if (!checkresult){

setState(() {

wifiNetworks = scanresults;

_shownetworks = true;

});

}

else{

if(mounted){

ScaffoldMessenger.of(context).showSnackBar(

const SnackBar(

padding: EdgeInsets.only(bottom: 25, left: 20, right: 20),

duration: Durations.extralong4,

backgroundColor: Colors.red,

content: Center(child: Text('No Nspeak devices nearby! ', style: TextStyle(fontSize: 15, fontWeight: FontWeight.bold),)),

),

);

}

}

}

Widget displayNspeak(){

var value;

nspeakdevices = []; /*Initialzied the variable here again because everytime "Get results" is clicked, it should return a new list. It should not go on adding the Wifi ACcess points to the same list*/

for (int i=0; i

Подробнее здесь: https://stackoverflow.com/questions/783 ... -flutter-a
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»