Android 10: сбой при выборе видео в android Q - PullRequest
1 голос
/ 26 мая 2020

Я хочу загрузить видео из галереи. Я использую startActivityForResualt и получаю данные из

onActivityResualt

, затем передаю uri методу для получения реального пути, это мой метод:

private static String getRealPath(Context context, Uri uri) {

    final String column = "_data";
    String[] proj = {MediaStore.Video.Media.DATA};
    try (Cursor cursor = context.getContentResolver().query(uri, proj, null, null, null)) {
        if (cursor != null && cursor.moveToFirst()) {
            final int index = cursor.getColumnIndexOrThrow(column);
            return cursor.getString(index);
        }
    }
    return null;
}

this is my onActivityResualt

, поэтому он работает со всеми API, кроме android 10 . в android 10 он открывает действие выбора видео, и я могу выбрать видео, но когда я выбираю видео, и он хочет вернуться к основному действию, вылетает и показывает эту ошибку !!:

java .lang.IllegalArgumentException: недопустимая широта столбца

, и это мой журнал:

2020-05-26 20:39:53.736 6048-6705/com.google.android.apps.photos E/DatabaseUtils: Writing exception to parcel
    java.lang.IllegalArgumentException: Invalid column latitude
        at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:170)
        at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:140)
        at android.content.ContentProviderProxy.query(ContentProviderNative.java:423)
        at android.content.ContentResolver.query(ContentResolver.java:944)
        at android.content.ContentResolver.query(ContentResolver.java:880)
        at android.content.ContentResolver.query(ContentResolver.java:836)
        at _1194.a(PG:97)
        at com.google.android.apps.photos.contentprovider.impl.MediaContentProvider.a(PG:32)
        at alca.query(PG:34)
        at android.content.ContentProvider.query(ContentProvider.java:1214)
        at alca.query(PG:10)
        at android.content.ContentProvider.query(ContentProvider.java:1307)
        at android.content.ContentProvider$Transport.query(ContentProvider.java:267)
        at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:104)
        at android.os.Binder.execTransactInternal(Binder.java:1021)
        at android.os.Binder.execTransact(Binder.java:994)
2020-05-26 20:39:53.755 7315-7315/diar.neo.mainactivvity E/AndroidRuntime: FATAL EXCEPTION: main
    Process: diar.neo.mainactivvity, PID: 7315
    java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=100, result=-1, data=Intent { dat=content://com.google.android.apps.photos.contentprovider/-1/2/content://media/external/video/media/30/ORIGINAL/NONE/893152725 flg=0x1 clip={text/uri-list U:content://com.google.android.apps.photos.contentprovider/-1/2/content%3A%2F%2Fmedia%2Fexternal%2Fvideo%2Fmedia%2F30/ORIGINAL/NONE/893152725} }} to activity {diar.neo.mainactivvity/diar.neo.mainactivvity.MainActivity}: java.lang.IllegalArgumentException: Invalid column latitude
        at android.app.ActivityThread.deliverResults(ActivityThread.java:4845)
        at android.app.ActivityThread.handleSendResult(ActivityThread.java:4886)
        at android.app.servertransaction.ActivityResultItem.execute(ActivityResultItem.java:51)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2016)
        at android.os.Handler.dispatchMessage(Handler.java:107)
        at android.os.Looper.loop(Looper.java:214)
        at android.app.ActivityThread.main(ActivityThread.java:7356)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)

Что мне делать?

1 Ответ

0 голосов
/ 26 мая 2020

Я обычно использовал этот файл, чтобы получить полный путь к чему-либо из Галереи.

Попробуйте и дайте мне знать.

 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
    ContentResolver resolver = mContext.getContentResolver();
    ContentValues contentValues = new ContentValues();
    contentValues.put(MediaStore.MediaColumns.DISPLAY_NAME, name);
    contentValues.put(MediaStore.MediaColumns.MIME_TYPE, "image/png");
    contentValues.put(MediaStore.MediaColumns.RELATIVE_PATH, "DCIM/" + IMAGES_FOLDER_NAME);
    Uri imageUri = resolver.insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, contentValues);

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...