Fmx.android wificonfiguration

  • Автор темы danten
  • 196
  • Обновлено
  • 20, Jan 2018
  • #1
Я еще не знаю, как решить этот код.

Прошу прощения за русских, я научил ее 30 лет назад :-D

Я пишу приложение для своих нужд.

У нас есть несколько комнат, и в каждой комнате есть Wi-Fi-сеть.

Мне нужно запустить приложение и удалить все сохраненные Wi-Fi-сети.

Затем будет отображен список доступных Wi-Fi-сетей, и щелчок по нему будет автоматически настраиваться и подключаться.

Мой код удаления в списке работает только при тестировании на мобильном устройстве, если я запускаю его на своем планшете, чтобы он не работал.

Конфигурация и подключение к созданной сети вообще не работают.

Не нужно ли работать с корневым приложением?

Спасибо всем, что помогли мне решить проблему.

Мой код:

 

procedure TfrmApp.ConnectToWifi; // not work error 0x000000

var

WifiManagerObj: JObject;

WifiManager: JWifiManager;

WifiConfiguration: JWifiConfiguration;

i: integer;

netID: integer;

List: JList;

begin

try

aSSID := '"'+qDB.FieldByName('ssid').AsString+'"';

aPass := '"'+qDB.FieldByname('pass').AsString+'"';

WifiManagerObj := SharedActivityContext.getSystemService(TJContext.JavaClass.WIFI_SERVICE);

WifiManager := TJWifiManager.Wrap((WifiManagerObj as ILocalObject).GetObjectID);

WifiConfiguration.SSID := StringToJString(aSSID);

WifiConfiguration.preSharedKey := StringToJString(aPass);

WifiManager.addNetwork(WifiConfiguration);

List := WifiManager.getConfiguredNetworks;

for i := 0 to List.size -1 do

begin

if WifiConfiguration.SSID = stringToJString(aSSID) then

begin

netID := WifiManager.addNetwork(WifiConfiguration);

WifiManager.disconnect;

WifiManager.enableNetwork(netID, True);

WifiManager.reconnect;

Break;

end;

ShowMessage('OK');

end;

except

on E: exception do

begin

ShowMessage('Connect: '+E.Message);

end;

end;

end;

procedure TfrmApp.RemoveWifiList; // not work on tablet, multiuser, android 7. >

var

WifiManagerObj: JObject;

WifiManager,WifiManager2: JWifiManager;

ScanResult: JScanResult;

WifiConf: JWifiConfiguration;

i,r: Integer;

netID: integer;

begin

try

WifiManagerObj := SharedActivityContext.getSystemService(TJContext.JavaClass.WIFI_SERVICE);

WifiManager := TJWifiManager.Wrap((WifiManagerObj as ILocalObject).GetObjectID);

try

for i := 0 to WifiManager.getScanResults.size -1 do

begin

ScanResult := TJScanResult.Wrap((WifiManager.getScanResults.get(i) as ILocalObject).GetObjectID);

netID := WifiManager.getConnectionInfo.getNetworkId;

WifiManager.removeNetwork(netID);

WifiManager.saveConfiguration();

end;

finally

ConnectToWifi;

end;

except

on E: exception do

begin

ShowMessage('Remove: '+E.Message);

end;

end;

end;

danten


Рег
19 Jun, 2010

Тем
1

Постов
1

Баллов
11
Тем
49554
Комментарии
57426
Опыт
552966

Интересно