如何从APK文件的文件URI获取内容URI?

时间:2019-01-11 10:16:45

标签: android file-uri

这里我正在获取下载文件的文件URI,我希望将其转换为内容URI。我已提出以下问题reference

的答案

但是已经实现了获取媒体文件的内容URI,因此当我将以下方法与APK文件的绝对路径一起使用时,我得到的是空值。如何更改此设置以获取APK文件的内容URI?

  String uriString = c.getString(c.getColumnIndex(DownloadManager.COLUMN_LOCAL_URI));
  Uri u = Uri.parse(uriString);
                            context.sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, u));
  File wallpaper_file = new File(u.getPath());
  Uri contentURI = getContentUri(context, wallpaper_file.getAbsolutePath());


public static Uri getContentUri(Context context, String absPath) {

    Cursor cursor = context.getContentResolver().query(
            MediaStore.Images.Media.EXTERNAL_CONTENT_URI
            , new String[] { MediaStore.Images.Media._ID }
            , MediaStore.Images.Media.DATA + "=? "
            , new String[] { absPath }, null);

    if (cursor != null && cursor.moveToFirst()) {
        int id = cursor.getInt(cursor.getColumnIndex(MediaStore.MediaColumns._ID));
        return Uri.withAppendedPath(MediaStore.Images.Media.EXTERNAL_CONTENT_URI , Integer.toString(id));

    } else if (!absPath.isEmpty()) {
        ContentValues values = new ContentValues();
        values.put(MediaStore.Images.Media.DATA, absPath);
        return context.getContentResolver().insert(
                MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
    } else {
        return null;
    }
}

0 个答案:

没有答案