在 SDK 26 中从本地存储安装 APK 时出现问题
Problems installing APK from local storage in SDK 26
我有一个应用程序更新方法,在 sdk 版本 26 之前都可以正常工作。
在 26 中,它打开 Activity 然后立即再次关闭它,没有任何(明显的)异常或警告被抛出。
我没有看到任何关于新权限或任何必要内容的文档。如果我只是将 minSdkVersion 更改为 25,它又可以正常工作了。
很想知道 26 有什么变化以及如何解决它。
这是相关的代码段,但正如我所说,它不是 "broken" - 它只是在 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);
您是否尝试将以下权限添加到清单中?
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
AndroidOreo 进行了更改,使从 Playstore 外部安装应用程序更加安全。您可以在下面 link:
获得更多信息
https://android-developers.googleblog.com/2017/08/making-it-safer-to-get-apps-on-android-o.html
我有一个应用程序更新方法,在 sdk 版本 26 之前都可以正常工作。
在 26 中,它打开 Activity 然后立即再次关闭它,没有任何(明显的)异常或警告被抛出。
我没有看到任何关于新权限或任何必要内容的文档。如果我只是将 minSdkVersion 更改为 25,它又可以正常工作了。
很想知道 26 有什么变化以及如何解决它。
这是相关的代码段,但正如我所说,它不是 "broken" - 它只是在 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);
您是否尝试将以下权限添加到清单中?
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
AndroidOreo 进行了更改,使从 Playstore 外部安装应用程序更加安全。您可以在下面 link:
获得更多信息https://android-developers.googleblog.com/2017/08/making-it-safer-to-get-apps-on-android-o.html