Проблемы с установкой APK из локального хранилища в SDK 26 - PullRequest
0 голосов
/ 26 июня 2018

У меня есть метод, который делает обновление приложения, которое прекрасно работает до SDK версии 26.

В 26 он открывает действие, а затем быстро закрывает его снова без каких-либо (очевидных) исключений или предупреждений.

Я не вижу никаких документов о новых разрешениях или что-либо, что необходимо. Если я просто изменю minSdkVersion на 25, он снова будет работать нормально.

Хотелось бы знать, что меняется в 26 и как с этим справиться.

Вот соответствующий сегмент кода, но, как я уже сказал, он не «сломан» - он просто молча терпит неудачу в 26.

if (Build.VERSION.SDK_INT <= android.os.Build.VERSION_CODES.M) {
    Log.d(TAG, "Marshmallow or lower");
    intent.setDataAndType(Uri.fromFile(file), "application/vnd.android.package-archive");
}
//if version 24 or above
else {
    Log.d(TAG, "higher than Marshmallow");

    Uri uri = FileProvider.getUriForFile(mContext, mContext.getApplicationContext().getPackageName() + ".provider", file);
    intent.setDataAndType(uri, "application/vnd.android.package-archive");
}
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
mContext.startActivity(intent);

1 Ответ

0 голосов
/ 26 июня 2018

Вы пытались добавить указанное ниже разрешение для манифеста?

<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />

В Android Oreo внесены изменения, чтобы сделать установку приложений из-за пределов PlayStore более безопасной. Вы можете получить больше информации по ссылке ниже:

https://android -developers.googleblog.com / 2017/08 / сделать-это безопасней к Get-приложений-на-андроида-o.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...