doučuji se programování aplikací pro Android v prostředí Delphi.
V současné době jsem si vzal trochu velké sousto a potřeboval bych pomoci v opravě kódu.
Mám několik zařízení které si stáhnou ze serveru seznam Wifi sítí včetně SSID a hesla.
V androidu spustím aplikaci a ta si seznam stáhne a uloží do interní databáze.
Nyní se vypíše seznam do ListView. Kliknutím se načtou všechny data z databáze do proměnných.
Ze zařízení se odstraní všechny uložené připojení. (až sem mi vše funguje na mobilu, na tabletu už ne).
Předem díky za pomoc.
Kód:
- Kód: Vybrat vše
var
aSSID, aPass: string;
procedure TfrmApp.RemoveWifiList; // nefunguje na tabletu, mobil OK
var
WifiManagerObj: JObject;
WifiManager: JWifiManager;
ScanResult: JScanResult;
i: Integer;
begin
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);
WifiManager.removeNetwork(i);
WifiManager.saveConfiguration();
end;
finally
ConnectToWifi;
end;
end;
procedure TfrmApp.ConnectToWifi; // nefunguje
var
WifiManagerObj: JObject;
WifiManager: JWifiManager;
WifiConfiguration: JWifiConfiguration;
begin
aSSID := qDB.FieldByName('aSSID').AsString;
aPass := qDB.FieldByname('aPass').AsString;
WifiManagerObj := SharedActivityContext.getSystemService(TJContext.JavaClass.WIFI_SERVICE);
WifiManager := TJWifiManager.Wrap((WifiManagerObj as ILocalObject).GetObjectID);
WifiConfiguration.SSID := StringToJString(aSSID);
WifiConfiguration.preSharedKey := StringToJString(aPass);
WifiConfiguration.hiddenSSID := False;
WifiManager.disconnect;
try
WifiManager.addNetwork(WifiConfiguration);
WifiManager.saveConfiguration;
WifiManager.reconnect;
except
WifiManager.updateNetwork(WifiConfiguration);
WifiManager.saveConfiguration;
WifiManager.reconnect;
end;
end;