Wie kann ich ProxySettings und ProxyProperties auf Android Wi-Fi-Verbindung mit Java?
Wie kann ich ProxySettings und ProxyProperties auf ein Android-Wi-Fi-Verbindung über Java (programmgesteuert)?
Als ipAssignment, linkProperties, ProxySettings und ProxyProperties sind versteckte Felder in WifiConfiguration auf Android 3.1 und höher, ich muss in der Lage sein, um die enum-Klasse, und verwenden Sie die Felder.
Folgenden wird der Beispielcode über den link unten kann ich eine statische IP-Adresse, gateway und DNS für einen bestimmten Wi-Fi-Verbindung, aber ich muss auch festgelegt Wificonfiguration.ProxySettings.STATISCHE und ProxyProperties
Finden Sie unter Stack Overflow Frage Wie configue eine statische IP-Adresse, Netzmaske, gateway programmgesteuert auf Android 3.x oder 4.x.
Beispielsweise
WifiConfiguration config = new WifiConfiguration(configuration);
config.ipAssignment = WifiConfiguration.IpAssignment.UNASSIGNED;
config.proxySettings = WifiConfiguration.ProxySettings.STATIC;
config.linkProperties.setHttpProxy(new ProxyProperties("127.0.0.1", 3128, ""));
Suche nach etwas wie:
setProxySettings("STATIC", wifiConf);
setProxyProperties("proxyserver.mine.com.au", 8080, ""); //Set Proxy server and port.
wifiManager.updateNetwork(wifiConf); //apply the setting
Verwenden Sie den folgenden code aus coolypf .ipAssignment .ProxySettings und linkProperties versteckt sind...
WifiManager manager = (WifiManager)getSystemService(Context.WIFI_SERVICE);
manager.asyncConnect(this, new Handler());
if (!manager.isWifiEnabled()) return;
List<WifiConfiguration> configurationList = manager.getConfiguredNetworks();
WifiConfiguration configuration = null;
int cur = manager.getConnectionInfo().getNetworkId();
for (int i = 0; i < configurationList.size(); ++i)
{
WifiConfiguration wifiConfiguration = configurationList.get(i);
if (wifiConfiguration.networkId == cur)
configuration = wifiConfiguration;
}
if (configuration == null) return;
WifiConfiguration config = new WifiConfiguration(configuration);
config.ipAssignment = WifiConfiguration.IpAssignment.UNASSIGNED;
config.proxySettings = WifiConfiguration.ProxySettings.STATIC;
config.linkProperties.clear();
config.linkProperties.setHttpProxy(new ProxyProperties("127.0.0.1", 3128, ""));
manager.saveNetwork(config);
InformationsquelleAutor user1681648 | 2012-09-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ist etwas code, der sollte Ihnen ermöglichen, set/unset ProxyProperties. Es verwendet einige der gleichen code aus dem link oben. Die Einstellungen scheinen nicht wirksam mit dem disconnect/reconnect.
was meinst du mit "Die Einstellungen scheinen nicht wirksam mit dem disconnect/reconnect." ?
Dies funktioniert nicht auf Android 2.3.6 . Fehler : "Keine Feld" Ausnahme " - Zeile : Objekt linkProperties = getField(config, "linkProperties"); in setWifiProxySettings()
i dont hv statische option in der proxy für meinen hp-tablet 4.4 version gibt es nur 2 option KEINE und Handbuch plz vorschlagen, wie zu tun, für die manuelle?
wissen Sie, wenn Sie programmgesteuert kann ich wissen, ob ein WLAN hat-services blockeds wie whatsapp, instagram, etc..?
InformationsquelleAutor Carl
Ähnlich wie Dave ' s Antwort, aber weniger Linien, indem Sie nur die Methode
setProxy(ProxySettings settings, ProxyInfo proxy)
(umliegenden code aus Gründen der übersichtlichkeit weggelassen):Android 8 Hinzugefügt eine öffentliche API, um den proxy, aber beschränkt es auf ein Geräte-Eigentümer und-Profil-Besitzer: developer.android.com/reference/android/net/wifi/.... Es scheint nicht zu einem workaround.
InformationsquelleAutor thevoiceless
Ist hier einige Beispiel-code für die gleiche Sache auf Android 5.0 nach dem gleichen format, wie in Carl ' s Antwort oben.
InformationsquelleAutor Dave