Здесь я получаю URI файла загруженного файла, и я хочу, чтобы он был преобразован в URI контента. Я отправил ответ на следующий вопрос ссылка
Но он был реализован для получения URI содержимого медиа-файла, поэтому я получаю нулевое значение, когда я использую приведенный ниже метод с абсолютным путем файла APK. Как я могу изменить это, чтобы получить URI содержимого файла APK?
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;
}
}