2013-04-18 47 views

回答

3
  1. 檢查網絡連接:

    public static boolean isConnectedToInternet(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; 
    } 
    
  2. 下載XML字符串

    public String getXMLString(String url) { 
    
        try 
        { 
         URL url1 = new URL(url); 
         URLConnection tc = url1.openConnection(); 
         tc.setConnectTimeout(timeout); 
         tc.setReadTimeout(timeout); 
         BufferedReader br = new BufferedReader((new InputStreamReader(tc.getInputStream()))); 
         StringBuilder sb = new StringBuilder(); 
         String line; 
         while ((line = br.readLine()) != null) 
         { 
          sb.append(line + "\n"); 
         } 
         br.close(); 
         return sb.toString(); 
        } catch (Exception e) 
        { 
         Log.d("Error", "In XMLdownloading"); 
        } 
    
        return null; 
    } 
    
  3. 保存字符串在SD卡任意目錄:

    private void writeStringToTextFile(String s, String f) { 
    
        File sdCard = Environment.getExternalStorageDirectory(); 
        File dir = new File(sdCard.getAbsolutePath()); 
        dir.mkdirs(); 
    
        File file = new File(dir, f); 
        try 
        { 
         FileOutputStream f1 = new FileOutputStream(file, false); 
         PrintStream p = new PrintStream(f1); 
         p.print(s); 
         p.close(); 
         f1.close(); 
        } catch (FileNotFoundException e) 
        { 
        } catch (IOException e) 
        { 
        } 
        } 
        } 
    
2

此方法添加到您的活動:

private boolean isNetworkAvailable() { 
    ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); 
    NetworkInfo activeNetworkInfo = connectivityManager 
      .getActiveNetworkInfo(); 
    return activeNetworkInfo != null; 
} 

和的onCreate或者加載你的飼料支票像在此之前:

 if (!isNetworkAvailable()) { 
      Toast.makeText(
        Player.this, 
        "No active internet connection found.", 
        Toast.LENGTH_LONG).show(); 
      finish(); 
      return; 
     } 
5

編寫XML文件或在運行時assets文件夾中的所有文件是不可能的。 res文件夾中的文件夾或資源是「只讀」但是,您可以在應用程序的內部數據文件夾中編寫XML文件。

只需使用Context.openFileInput(String)Context.openFileOutput(String, int)即可。 Here

更新1

這個問題可能出現在你的腦海。

"If I write an XML file on my app's data folder, how to parse it?"

您可以使用XMLPullParser類解析XML文件。這裏有一個例子

XMLPullParser parser = Xml.newPullParser(); 
parser.setInput(new InputStreamReader(openFileInput("my_XML_file.xml"))); 
+0

我使用SAX parser.will這是一個問題?我是否必須更改我的代碼才能使其工作或者是否有其他解決方案? – user2184060

+0

我對SAX Parser沒有任何經驗。我看過它的一個例子。如果你使用'InputSource'對象,你可以這樣做'inputSource.setCharacterStream(new InputStreamReader(openFileInput(「my_XML_file.xml」)))' – Geros

相關問題