Я хочу обновить мой APK программно с помощью запроса FTP. Я могу подключиться к своему FTP-серверу, но я получаю исключение E / IO: IO java .io.FileNotFoundException: /storage/emulated/0/Download/app-debug.apk (Permission denied).
Как я могу решить эту проблему? Приложение является владельцем устройства. И у меня есть разрешения в Android Манифесте. Вот почему я не знаю, почему мне отказывают в разрешении?
public void run() {
try {
FTPClient ftpClient = new FTPClient();
ftpClient.connect("10.0.2.2");
ftpClient.login("user", "1234");
ftpClient.enterLocalPassiveMode();
String remoteFile1 = "/app-debug.apk";
String downPath = getExternalStoragePublicDirectory(DIRECTORY_DOWNLOADS).getAbsolutePath();
File myapk = new File(downPath + "/app-debug.apk");
OutputStream outputStream1 = new BufferedOutputStream(new FileOutputStream(myapk));
boolean success = ftpClient.retrieveFile(remoteFile1, outputStream1);
outputStream1.close();
myapk.setReadable(true, false);
if (!success) {
ftpClient.logout();
ftpClient.disconnect();
return;
} else {
Intent promptInstall = new Intent(Intent.ACTION_VIEW)
.setDataAndType(Uri.fromFile(myapk), "application/vnd.android.package-archive")
.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(promptInstall);
}
}
catch (Exception e) {
e.printStackTrace();
Log.e("IO","IO"+e);
}