我使用 Android Studio 创建了一个 android 应用程序,它尝试检查应用程序使用的文件是否有更新版本,该文件存储在资产目录中。我已检查该文件是否可用且可访问,但由于我无法共享文件位置,因此我将在此示例中使用以下文本文件:http : //www.w3.org/TR/PNG/iso_8859-1。文本文件我一直牢记在我的代码中包含以下内容:1- 在 manifest.xml 文件中添加使用权限,如下所示:<uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 2- 创建 AsyncTask 以在后台执行文件读取:import android.content.Context;import android.os.AsyncTask;import android.util.Log;import java.io.BufferedInputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.net.HttpURLConnection;import java.net.MalformedURLException;import java.net.URL;import java.net.URLConnection;public class CheckUpdate extends AsyncTask<Void,Void,Boolean>{String filename = "http://www.w3.org/TR/PNG/iso_8859-1.txt";private Context ctx;public CheckUpdate(Context myContext) { this.ctx = myContext; doInBackground();}@Overrideprotected Boolean doInBackground(Void... voids) { try { URL url = new URL(filename); File LocalFile = new File("file:///android_asset/test.txt"); HttpURLConnection ucon = (HttpURLConnection) url.openConnection();ucon.setReadTimeout(5000);ucon.setConnectTimeout(10000);ucon.setDoInput(true); ucon.setDoOutput(true); ucon.connect(); if (ucon.getResponseCode() == 200) { InputStream isURL = ucon.getInputStream(); BufferedInputStream inStream = new BufferedInputStream(isURL); long LocalFileModifiedDate = LocalFile.lastModified(); long ExFileModifiedDate = ucon.getLastModified(); if (LocalFile.exists()) { LocalFile.delete(); } if (LocalFileModifiedDate < ExFileModifiedDate) { LocalFile.createNewFile(); FileOutputStream outStream = new FileOutputStream(LocalFile); byte[] buff = new byte[5 * 1024];
添加回答
举报
0/150
提交
取消