я использую следующий код для загрузки файла из интернета. с помощью этого кода у меня есть диалог прогресса
private void startDownload() {
String url = tv.getText().toString();
new DownloadFileAsync().execute(url);
}
class DownloadFileAsync extends AsyncTask<String, String, String> {
@Override
protected void onPreExecute() {
super.onPreExecute();
showDialog(DIALOG_DOWNLOAD_PROGRESS);
}
@Override
protected String doInBackground(String... aurl) {
int count;
try {
URL url = new URL(aurl[0]);
URLConnection conexion = url.openConnection();
conexion.connect();
int lenghtOfFile = conexion.getContentLength();
Log.d("ANDRO_ASYNC", "Lenght of file: " + lenghtOfFile);
InputStream input = new BufferedInputStream(url.openStream());
OutputStream output = new FileOutputStream(
"data/data/com.xxxxxxxx.android/app_p_pic/"
+ "blabla"
byte data[] = new byte[1024];
long total = 0;
while ((count = input.read(data)) != -1) {
total += count;
publishProgress("" + (int) ((total * 100) / lenghtOfFile));
output.write(data, 0, count);
}
output.flush();
output.close();
input.close();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
protected void onProgressUpdate(String... progress) {
Log.d("ANDRO_ASYNC", progress[0]);
mProgressDialog.setProgress(Integer.parseInt(progress[0]));
}
@Override
protected void onPostExecute(String unused) {
dismissDialog(DIALOG_DOWNLOAD_PROGRESS);
}
}
}
Есть ли способ использовать приведенный выше код для передачи файла, скажем, внутренний, чтобы SD сейчас я использую следующий код, но я не смог заставить прогресс работать с индикатором прогресса
protected void ontrans() {
String title = tv.getText().toString();
try {
myInput = new FileInputStream(title);
File directory = new File(Environment.getExternalStorageDirectory()
+ "/android_files/data/secure");
if (!directory.exists()) {
directory.mkdirs();
}
OutputStream myOutput = new FileOutputStream(
Environment.getExternalStorageDirectory()
+ "/android_files/data/secure/" + chosenFile);
byte[] buffer = new byte[1024];
int length;
while ((length = myInput.read(buffer)) > 0) {
myOutput.write(buffer, 0, length);
}
myOutput.flush();
myOutput.close();
myInput.close();
Toast.makeText(File_exActivity.this, "file move Succesfully!",
Toast.LENGTH_SHORT).show();
showDialog(11);
} catch (FileNotFoundException e) {
Toast.makeText(File_exActivity.this, "no file found!",
Toast.LENGTH_LONG).show();
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
Toast.makeText(File_exActivity.this, "move unsuccesfull!",
Toast.LENGTH_LONG).show();
// TODO Auto-generated catch block
e.printStackTrace();
}
}