我有一个方法可以进行应用程序更新,直到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);