我正在尝试获取已保存网络的列表,并且只删除具有特定SSID的网络。这就是我到现在为止所做的:
procedure TMainScreen.Button4Click(Sender: TObject);
var obj: JObject;
WifiMgr : JWifiManager;
Networks : JList;
i : integer;
begin
obj := TAndroidHelper.Context.getSystemService(TJContext.JavaClass.WIFI_SERVICE);
WifiMgr := TJwifiManager.Wrap((obj as ILocalObject).GetObjectID);
Networks := WifiMgr.getConfiguredNetworks;
for i := 0 to Networks.size-1 do
begin
end;
Toast('Configured Networks : '+inttostr(Networks.size),TToastLength.ShortToast);
end;
这将获得网络列表,但我不知道如何访问配置1 SSID。
我在Stackoverflow上找到了以下示例。但我很难理解/转换它。
List<WifiConfiguration> list = wifiManager.getConfiguredNetworks();
for( WifiConfiguration i : list ) {
if(i.SSID != null && i.SSID.equals("\"" + networkSSID + "\"")) {
wifiManager.disconnect();
wifiManager.enableNetwork(i.networkId, true);
wifiManager.reconnect();
break;
}
}
请帮帮忙。致敬罗伯特
发布于 2020-01-27 15:25:07
我成功地解决了这个问题:
procedure TMainScreen.Button4Click(Sender: TObject);
var obj: JObject;
WifiMgr : JWifiManager;
Networks : JList;
Config : JWifiConfiguration;
i : integer;
begin
obj := TAndroidHelper.Context.getSystemService(TJContext.JavaClass.WIFI_SERVICE);
WifiMgr := TJwifiManager.Wrap((obj as ILocalObject).GetObjectID);
Networks := WifiMgr.getConfiguredNetworks;
for i := 0 to Networks.size-1 do
begin
Config := TJWifiConfiguration.Wrap((Networks.get(i) as ILocalObject).GetObjectID);
if JStringToString(Config.SSID) = '"robert-net2"' then
begin
Toast('Network ID '+inttostr(Config.networkId), TToastLength.ShortToast);
WifiMgr.removeNetwork(Config.networkId);
end;
end;
end;
https://stackoverflow.com/questions/59933134
复制相似问题