我正在编写一个具有多个功能的应用程序,这些功能使用HTTPConnection连接到互联网并下载数据。我已经在几个设备上进行了测试,但是应用程序内部的连接似乎在不同的设备上被击中或错过。我是;断言连接在三星设备上不起作用。我在想,因为它还不是一个“官方”许可应用程序,连接失败了。可能是某种操作系统的差异吗?
以下代码应该连接到互联网并将文字下载到文件中。它适用于某些设备,但在其他设备上,它最终会创建一个空白文件并抛出异常。
try{
URL url = new URL("*" + currQuickList + ".txt");
URLConnection urlConnection = url.openConnection();
urlConnection.setUseCaches(false);
int i = 0;
// Read all the text returned by the server
BufferedReader in = new BufferedReader(new InputStreamReader(
urlConnection.getInputStream()));
String str;
int count = Integer.parseInt(in.readLine());
int[] a = createOrderedList(count,quickListLen);
int d = 0;
int g = 0;
while ((str = in.readLine()) != null && d < a.length) {
// str is one line of text; readLine() strips the newline
// character(s)
if(a[d] == g)
{words.add(str);
d++;
}
g++;
}
in.close();
OutputStream fo = new FileOutputStream(dir);
PrintWriter p = new PrintWriter(fo);
p.print(packageWords2(words) +"\n");
p.close();
fo.close();
System.out.println("file created: "+dir);
//files.add(wordText);
}
catch(Exception e){
e.printStackTrace();
errorDialog(e);
}
答案 0 :(得分:2)
在下载或使用互联网之前检查您的互联网连接。您可以试试这个
public static boolean isConnectingToInternet(Context context) {
ConnectivityManager connectivity = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivity != null) {
NetworkInfo[] info = connectivity.getAllNetworkInfo();
if (info != null)
for (int i = 0; i < info.length; i++)
if (info[i].getState() == NetworkInfo.State.CONNECTED) {
return true;
}
}
return false;
}