【发布时间】:2012-03-13 14:52:04
【问题描述】:
我的应用在模拟器上运行良好,但在真正的 Android 手机(索尼爱立信 xperia、索尼爱立信 xperia mini)上时无法连接到互联网。手机有使用 EDGE/GPRS 的有效互联网连接。
课程如下:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.ResponseHandler;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.BasicResponseHandler;
import org.apache.http.impl.client.DefaultHttpClient;
public class get_string {
public String response_p (String url)
{
HttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet(url.toString());
ResponseHandler<String> responseHandler = new BasicResponseHandler();
String response_str = null;
try {
response_str = client.execute(request, responseHandler);
} catch (ClientProtocolException e) {
response_str="NOT";
} catch (IOException e) {
response_str="NOT";
}
return response_str;
}
public String response (String str)
{
String res="";
try {
URL url = new URL(str);
HttpURLConnection con = (HttpURLConnection) url
.openConnection();
res=readStream(con.getInputStream());
} catch (Exception e) {
res="NOT";
}
return res;
}
private String readStream(InputStream in) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
String line = "",res="";
while ((line = reader.readLine()) != null) {
res+=line;
}
return res;
}
}
response() 和 response_p() 的结果相同。
这是清单文件:
</application>
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
</manifest>
我该如何解决这个问题?
【问题讨论】:
-
您是如何通过电话访问互联网的?通过 WiFi 还是 GPRS?
-
你知道它到底哪里出了问题吗?您所有的失败案例都返回字符串“NOT”。为什么不记录或返回具体原因?
-
所以您的 SIM 卡有 GPRS 套餐?你有正确的 GPRS 设置吗?做一件事,在您的手机浏览器上打开 www.stackoverflow.com,这意味着您的 GPRS 正在工作,而问题在于您的代码
-
@Android 我可以浏览任何网站、谷歌地图和所有其他基于互联网的服务,但只有我的应用无法连接到互联网,尽管它在模拟器上运行良好。
标签: android