Как получить URI контента из URI файла APK-файла? - PullRequest
0 голосов
/ 11 января 2019

Здесь я получаю 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;
    }
}
...