Я хочу программно показать файл, используя намерение, другому приложению, например, pdf-viewer.Но ни одно приложение не может разрешить содержимое файла и показать сообщение об ошибке или немедленно закрывается.Я думаю, что мое приложение не будет отправлять содержимое файла правильно, так что другие приложения не могут показать файл.
Я искал решение, но нашел только комментарии и сообщения, где проблема заключается в открытиифайл.Но это не моя проблема.
Здесь мой код (не совсем мой, я получил его с другого сайта), чтобы открыть файл:
MimeTypeMap myMime = MimeTypeMap.getSingleton();
Intent intent = new Intent(Intent.ACTION_VIEW);
String mimeType = myMime.getMimeTypeFromExtension(filetype);
if(android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
Uri fileURI = FileProvider.getUriForFile(getContext(),
BuildConfig.APPLICATION_ID + ".fileprovider",file);
intent.setDataAndType(fileURI, mimeType);
} else {
intent.setDataAndType(Uri.fromFile(file), mimeType);
}
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_GRANT_READ_URI_PERMISSION);
try {
getContext().startActivity(intent);
}catch (ActivityNotFoundException e){
Toast.makeText(getContext(), "No Application found to open this type of file.", Toast.LENGTH_LONG).show();
}
String-var 'filetype' - это расширение / тип файла, например "pdf "или" txt "и получение правильного mimetype не проблема.Файл-объект 'file' - это мой файл, который я создал следующим образом:
File openFile = new File("MY_PATH");
Также нет проблем.
Так где же ошибка, или кто-нибудь лучше код или можетопубликовать ссылку на хороший блог / переполнение стека или еще, связанные с моей темой?Спасибо заранее!