でダウンロードしたファイルを参照するために、私はファイルをダウンロードするコードは次のとおりです。アンドロイド:どのように私は、テキストファイルをダウンロードするにはダウンロードマネージャクラスを使用していたDownloadManager
private long enqueue
private DownloadManager dm;
String server_ip = "http://192.168.0.1/";
Request request = new Request(Uri.parse(server_ip + "test.txt"));
// Store to common external storage:
request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, "test.txt");
enqueue = dm.enqueue(request);
そして私はにboardcast受信機を持っていますダウンロードが成功したかどうかを確認してください。ダウンロードが成功した場合、私はTextViewのでtxtファイルを表示しようとします:私が見つけ
BroadcastReceiver receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (DownloadManager.ACTION_DOWNLOAD_COMPLETE.equals(action)) {
Query query = new Query();
query.setFilterById(enqueue);
Cursor c = dm.query(query);
for (c.moveToFirst(); !c.isAfterLast(); c.moveToNext()) {
int columnIndex = c.getColumnIndex(DownloadManager.COLUMN_STATUS);
// Check if the download is successful
if (DownloadManager.STATUS_SUCCESSFUL == c.getInt(columnIndex)) {
// Get the downloaded file and display the test.txt in a textView
File file = new File(storage_directory,"test.txt");
StringBuilder text = new StringBuilder();
try {
BufferedReader br = new BufferedReader(new FileReader(file));
String line;
while ((line = br.readLine()) != null) {
text.append(line);
text.append('\n');
}
br.close();
TextView tv = (TextView)findViewById(R.id.textView);
tv.setText(text);
}
catch (Exception e) {
//You'll need to add proper error handling here
}
}
}
}
}
}
一つの問題は、同じファイル名のファイルが既に存在する場合、ある「TEXT.TXT」、デバイスを新しくダウンロードしたファイルの名前を "text-1.txt"に変更します。その結果、新しくダウンロードしたファイルを表示しようとすると、代わりに古い「test.txt」ファイルが表示されます。
File file = new File(storage_directory,"test.txt");
また、私は外部ストレージにファイルをdownloadededている:私は、ダウンロードが成功したとき、私は新しいファイルを参照することができますどのように尋ねるのではなく、私が何をしたかのようにファイル名を指定したいと思います。私はこの行を追加していない場合、私は知っている:
request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, "test.txt");
私はダウンロードマネージャに要求を送信する場合、ファイルが内部ストレージにdonwloadedされます。この場合、ファイルをどのように参照できますか?
ありがとうございました。
更新:放送受信に成功したファイルを受け取った後、私はこの行を追加する場合 は:
String uriString = c.getString(c.getColumnIndex(DownloadManager.COLUMN_LOCAL_URI));
uriStringは私に
ファイルを与える:///ストレージ/エミュレート/ 0/Download/test.txt
http://www.gadgetsaint.com/android/download-manager/#.WSK0Yut96Hs – ASP