修改文件:framework/base/packages/DocumentsUI/src/com/android/documentsui/DocumentsActivity.java
在onDocumentPicked方法里面的else if (mState.action == ACTION_MANAGE)里面加上
final Intent manage;
if (doc != null && doc.displayName != null
&& doc.displayName.endsWith(".apk")) {
//所有下载文件的uri地址
Uri uri = Uri.parse("content://downloads/all_downloads");
ContentResolver resolver = getContentResolver();
Cursor cursor = resolver.query(uri, null, null, null, null);
String path = null;
while(cursor.moveToNext()){
String temp = cursor.getString(cursor.getColumnIndex("_data"));
if (temp != null && doc != null
&& temp.contains(doc.displayName)) {
path = temp;
}
}
//打开apk文件到安装界面
File file = new File(path);
Uri fileUri = Uri.fromFile(file);
manage = new Intent(Intent.ACTION_VIEW);
manage.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
manage.addCategory("android.intent.category.DEFAULT");
manage.setDataAndType(fileUri,
"application/vnd.android.package-archive");
} else {
manage = new Intent(DocumentsContract.ACTION_MANAGE_DOCUMENT);
manage.setData(doc.derivedUri);
}