- 20, Jan 2018
- #1
Я еще не знаю, как решить этот код.
Прошу прощения за русских, я научил ее 30 лет назад :-D
Я пишу приложение для своих нужд.
У нас есть несколько комнат, и в каждой комнате есть Wi-Fi-сеть.
Мне нужно запустить приложение и удалить все сохраненные Wi-Fi-сети.
Затем будет отображен список доступных Wi-Fi-сетей, и щелчок по нему будет автоматически настраиваться и подключаться.
Мой код удаления в списке работает только при тестировании на мобильном устройстве, если я запускаю его на своем планшете, чтобы он не работал.
Конфигурация и подключение к созданной сети вообще не работают.
Не нужно ли работать с корневым приложением?
Спасибо всем, что помогли мне решить проблему.
Мой код:
Прошу прощения за русских, я научил ее 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;