Uri содержимого приводит к сбою моего приложения, но Uri файла работает

#java #android #android-studio

#java #Android #android-studio

Вопрос:

код:

     if (fileSizeInKB > 2000 amp;amp; goFurther) {
         Uri uri = FileProvider.getUriForFile(Method.mContext,
                                BuildConfig.APPLICATION_ID ".provider",file);
                        Log.d("hiddenFileChecking2",String.valueOf(uri));
                        MediaMetadataRetriever retriever = new MediaMetadataRetriever();
                        retriever.setDataSource(Method.mContext,uri); //not working
                        //retriever.setDataSource(Method.mContext,Uri.fromFile(file)); //its working
                        String hasVideo = retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_HAS_VIDEO);
                        Log.d("hiddenHasVideo",hasVideo);
                        boolean isVideo = "yes".equals(hasVideo);
                        if (isVideo) {
                            Constant.allHiddenMediaList.add(file);
                        }
                }
  

ошибка logcat:

 Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.ContentResolver android.content.Context.getContentResolver()' on a null object reference
    at android.media.MediaMetadataRetriever.setDataSource(MediaMetadataRetriever.java:168)
  

Я хочу использовать uri содержимого внутри setDataSource . Но я получаю эту ошибку. Когда я использую file uri сбой приложения android 7-nougat . Как я могу использовать uri содержимого внутри setDataSource .

что я хочу: я хочу найти все видеофайлы, не использующие расширения. например: я меняю расширение « helloWorld.mp4 » на « helloWorld.pdf «. Теперь я хочу определить файл (« helloWorld.pdf «) как видео.

Комментарии:

1. Используемый контекст равен нулю. Недопустимо. Перед использованием проверьте наличие null.

2. то же самое работает и в uri файла. Как я могу проверить перед использованием?

3. if(Method.mContext==null) return; Также отобразите всплывающее окно для информирования пользователя.

4. Если я это сделаю, я не смогу проверить ни один файл. Но я хочу проверить весь файл.

5. Не имеет значения, чего вы хотите. Пока вы используете недопустимый контекст, контекст, который равен null, делать особо нечего.