Не удалось загрузить загруженный файл DownloadManager на Android N

У меня есть системное приложение со всеми необходимыми разрешениями. Ранее, я бы загружал apks с помощью DownloadManager, а затем использовал отражение через installPackage () пакета PackageManager для установки указанного apk.

К сожалению, после изменений поведения N http://developer.android.com/preview/behavior-changes.html :

DownloadManager больше не может хранить файлы, хранящиеся в частном порядке, по имени файла. При доступе к COLUMN_LOCAL_FILENAME устаревшие приложения могут получить недопустимый путь. Приложения, нацеленные на Android N или выше, запускают SecurityException при попытке доступа к COLUMN_LOCAL_FILENAME. Устаревшие приложения, которые устанавливают местоположение загрузки в общедоступное местоположение с помощью setDestinationInExternalFilesDir (Context, String, String) или setDestinationInExternalPublicDir (String, String), могут по-прежнему обращаться к пути в COLUMN_LOCAL_FILENAME, однако этот метод сильно не рекомендуется. Предпочтительным способом доступа к файлу, открываемому DownloadManager, является использование openFileDescriptor (Uri, String).

Теперь я получаю разрешение, отклоненное при попытке использовать его по-старому.

Мне нужно, чтобы Uri перешел к installPackage () PM, и теперь я просто копирую файл в личную папку моего приложения с режимом (depcrecated) WORLD_READABLE, чтобы PM мог позже получить к нему доступ и установить. Это очень хладнокровно, и мне было интересно, знает ли кто-нибудь о лучшем способе (другой вариант, предложенный androiddev, – это загрузить файл в общедоступный каталог, но это потребует от меня добавления разрешений WRITE_EXTERNAL_STORAGE, который не является вариантом).