#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, делать особо нечего.