Я хочу скачать APK из Dropbox без использования API. У меня есть следующий код:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
// Initialise the button
btn = (Button) findViewById(R.id.mybutton);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
new DownloadFilesTask().execute();
// Show Download confirmation
Toast confirmDownload = Toast.makeText(Main2Activity.this,"Download is complete",Toast.LENGTH_LONG);
confirmDownload.show();
}
});
}
/**
* Asynchronous Task Class
* Will invoke a new stream with which the apk is to be downloaded
*/
private static class DownloadFilesTask extends AsyncTask<Void, Void, Void> {
/**
* Concurrent process to download the file from the path provided
* @param voids Parameters of the method are not used
* @return Return value of the method is unimportant
*/
@Override
protected Void doInBackground(Void... voids) {
try{
URL download = new URL(pathToAPK);
ReadableByteChannel rbc= Channels.newChannel(download.openStream());
FileOutputStream fileOut = new FileOutputStream(dowloadPath+ "file.apk");
fileOut.getChannel().transferFrom(rbc, 0,1 << 24 );
fileOut.flush();
fileOut.close();
rbc.close();
}catch(Exception e){ e.printStackTrace(); }
return null;
}
Файл загружается успешно, однако, когда я пытаюсь открыть файл, я получаю:
Ошибка синтаксического анализа: возникла проблема при синтаксическом анализе пакета
Я предполагаю, что файл по какой-то причине поврежден. Есть догадки?