我曾经使用以下代码打开下载的文件:
final String filePath = cursor.getString( cursor.getColumnIndexOrThrow(DownloadManager.COLUMN_LOCAL_FILENAME)); if (TextUtils2.isNotEmpty(filePath)) { apkFile = Uri.fromFile(new File(filePath)); } startActivity(new Intent(Intent.ACTION_VIEW) .setDataAndType(apkFile, UPDATE_APK_FILE_MIME_TYPE) .setFlags(Intent.FLAG_ACTIVITY_NEW_TASK));
但是从API 24下载了DownloadManager.COLUMN_LOCAL_FILENAME,我需要使用openFileDescriptor(Uri uri, 字符串模式)方法。 但我不知道如何从Fd获取文件路径以将其用作意图的数据。
有谁知道怎么做或者打开下载文件的替代方案?
答案 0 :(得分:0)
而不是
cursor.getString(cursor.getColumnIndexOrThrow(DownloadManager.COLUMN_LOCAL_FILENAME)
你可以使用
cursor.getString(cursor.getColumnIndexOrThrow(DownloadManager.COLUMN_LOCAL_URI)
返回你需要的apk文件的uri
答案 1 :(得分:0)
仅检索下载文件的旧的绝对路径:
String absolutePath = Uri.parse(cursor.getString(cursor.getColumnIndex(DownloadManager.COLUMN_LOCAL_URI))).getPath();
当然:
File file = new File(absolutePath);