Fmx.android wificonfiguration

danten

Местный
Регистрация
19 Июн 2010
Сообщения
12
Реакции
41
Credits
22
Я еще не знаю, как решить этот код.

Прошу прощения за русских, я научил ее 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;