Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/216.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在SDK 26中从本地存储安装APK时出现问题_Android_Android Version_App Update - Fatal编程技术网

Android 在SDK 26中从本地存储安装APK时出现问题

Android 在SDK 26中从本地存储安装APK时出现问题,android,android-version,app-update,Android,Android Version,App Update,我有一个方法可以进行应用程序更新,它在sdk版本26之前一直运行良好 在26中,它打开活动,然后立即再次关闭,而不会抛出任何(明显的)异常或警告 我没有看到任何关于新权限或任何必要的文档。如果我只是将Minsdk版本更改为25,它又可以正常工作了 我想知道26年发生了什么变化,以及如何应对 这里是相关的代码段,但正如我所说的,它并没有“断开”-它只是在26中默默地失败 if (Build.VERSION.SDK_INT <= android.os.Build.VERSION_CODES.M

我有一个方法可以进行应用程序更新,它在sdk版本26之前一直运行良好

在26中,它打开活动,然后立即再次关闭,而不会抛出任何(明显的)异常或警告

我没有看到任何关于新权限或任何必要的文档。如果我只是将Minsdk版本更改为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);

if(Build.VERSION.SDK_INT是否尝试将以下权限添加到清单

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

Android Oreo中进行了一些更改,以使从playstore外部安装应用程序更加安全。您可以通过以下链接获得更多信息:


太棒了,这正是我错过的。非常感谢。