Я пытаюсь реализовать способ открытия PDF Reader для некоторых файлов, расположенных в /Android/data/package.name/files/. Мне не удалось использовать правильный FileProvider, но я обнаружил, что просто добавленное содержимое: // сделало работу. Но по какой-то причине он не может открыть некоторые из них, и я не могу понять, почему.
File file=new File("Direct path to file as string");
if(file.exists()){ ///Yes, File Exists
try {
Intent intent = new Intent(Intent.ACTION_VIEW);
Log.v("Authority", context.getApplicationContext().getPackageName());
Log.v("URI", Util.UriForFile(context, file).toString());
intent.setDataAndType(Util.UriForFile(context, file), "application/pdf");
intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
context.startActivity(intent);
} catch (ActivityNotFoundException e) {
parent.alert(context.getString(R.string.error_nopdfreader));
}
}
и собственно метод Util.UriForFile:
public static Uri UriForFile(Context context, File file){
return Uri.parse("content://"+file.getAbsolutePath());
// if(context==null)
// Log.v("Util", "Context is null");
//
// if(file==null)
// Log.v("Util", "File is null");
//
// if(context.getApplicationInfo()==null)
// Log.v("Util", "getApplicationInfo is null");
//
// return FileProvider.getUriForFile(context, context.getApplicationInfo().packageName+".provider", file);
}
Uri
(например, у него нет строки полномочий). Мне не удалось использовать правильный FileProvider — рассмотрите возможность задать отдельный вопрос о переполнении стека, где вы предоставляете минимальный воспроизводимый пример и подробно объясните, что значит неудавшийся. - person CommonsWare   schedule 29.11.2016