Android 2.3.4 で動作する Samsung Galaxy S Plus Phone を使用しています。
[設定] -> [ワイヤレスとネットワーク] -> [Wi-Fi 設定] -> [メニュー ボタン] -> [詳細] パネルで、電話のプロキシ サーバーとポートを手動で設定しました。
私の電話はまだプロキシを使用して通信できません。ブラウザを試しましたが、プロキシ設定を利用できません。
public static InputStream inputStreamForUrl(URL url) throws IOException {
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); // doesn't work on android 2.3.4
urlConnection.setRequestMethod("GET");
urlConnection.setDoInput(true);
urlConnection.setConnectTimeout(30000);
urlConnection.setReadTimeout(30000);
System.out.println(urlConnection.usingProxy());
urlConnection.connect();
return urlConnection.getInputStream();
}
ただし、コードでプロキシを手動でハードコードすると、機能します
Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("proxy.server.url", 8080));// this needs to be hard coded to make it work in 2.3
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(proxy);// this needs to be hard coded to make it work in 2.3
システムプロキシを動的に見つけてコードで使用しようとしましたが、
private static void getProxySettings()
{
final boolean IS_ICS_OR_LATER = Build.VERSION.SDK_INT >= 14;
String proxyAddress = "";
int proxyPort = 0;
if( IS_ICS_OR_LATER )
{
proxyAddress = System.getProperty( "http.proxyHost" );
String portStr = System.getProperty( "http.proxyPort" );
proxyPort = Integer.parseInt( ( portStr != null ? portStr : "-1" ) );
}
else
{
proxyAddress = android.net.Proxy.getHost( ctx );
proxyPort = android.net.Proxy.getPort( ctx );
}
System.out.println(proxyAddress);
System.out.println(proxyPort);
}
ただし、プロキシ アドレスとポートは常に null です。
誰か助けてください
PS。Android 4.1/4.2/4.3 デバイスではまったく問題ありません