Я пытаюсь установить файл apk, присутствующий во внутреннем/внешнем хранилище. Это мой код:Установка apk в каталоге данных
final String fileuri = "file://" + absolutePath;
Log.v("FILE_BROWSER", "File to be installed: " + Uri.parse(fileuri).getPath());
final Intent promptInstall = new Intent(Intent.ACTION_VIEW);
promptInstall.setDataAndType(Uri.parse(fileuri), "application/vnd.android.package-archive");
promptInstall.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(promptInstall);
АПК файл успешно установлен, если файл присутствует на внешнем накопителе. Например. /mnt/sdcard/MyApp.apk
Но если файл apk присутствует во внутренней памяти (например. /data/data/com.myapp/files/MyApp.apk), то установка завершается с ошибкой. Сообщение об ошибке: Parse Error: There is a problem parsing the package
Одним из решений может быть копирование файла на SDCARD, а затем его установка. Но в сценарии, где SDCARD недоступен, этот трюк не будет работать.
Любая помощь по этому парню? Как установить apk во внутренний каталог хранения, если SDCARD недоступен?
Убедитесь, что ваш .apk-файл размещен во внутреннем хранилище t и у него есть разрешение WORLD_READABLE. – user370305
Я использую эквивалентное приложение браузера файлов. И если мое приложение может увидеть файл, то файл WORLD_READABLE я предполагаю. –
Нет, его не нужно. Если ваше приложение записывает файл в режиме PRIVATE, то только ваше приложение может его читать и писать. Ни одна сторонняя или другая заявка не делает этого. – user370305