Как получить доступ к папке загрузок?

Я пытаюсь установить apk из каталога загрузок моего устройства. Мое жестко запрограммированное решение работает как шарм -

   Intent intent = new Intent(Intent.ACTION_VIEW);
        intent.setDataAndType(Uri.fromFile(new File(Environment.getExternalStorageDirectory() + "/download/" + "update.apk")), "application/vnd.android.package-archive");
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(intent);

но как только я поменяю его на

       Intent intent = new Intent(Intent.ACTION_VIEW);
        intent.setDataAndType(Uri.fromFile(new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) + "update.apk")), "application/vnd.android.package-archive");
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(intent);

Я получаю сообщение об ошибке при разборе пакета. Что я делаю неправильно????

вы можете вставить свою ошибку logcat?

Gastón Saillén 30.03.2018 01:38

Я вижу слэши в первой версии. Вы уверены, что о них позаботятся во втором?

Mozahler 30.03.2018 02:31

@m ты прав

user9555243 30.03.2018 17:49
1
3
1 961
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Значение, возвращенное

Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)

/ storage / emulated / 0 / Скачать отсутствует '/' в конце. Ваш путь должен быть '/update.apk'

Использовать его нужно следующим образом:

intent.setDataAndType(Uri.fromFile(new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) + "/update.apk")), "application/vnd.android.package-archive");

Другие вопросы по теме