Обновите APK программно - PullRequest
0 голосов
/ 17 апреля 2020

Я хочу обновить мой 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);

        }
...