Вы можете запустить намерение, которое позволит пользователю выбрать, какое приложение откроет файл PDF со следующим кодом, который будет работать для любого файла и mimetype. Если у пользователя нет приложения, которое может его открыть, вы можете отобразить ошибку или сделать все, что вам нужно.
Обратите внимание, что файл должен быть доступен для чтения всем, поэтому он должен быть помечен как таковой, если он находится во внутреннем хранилище или во внешнем хранилище.
private void openFile(File f, String mimeType)
{
Intent viewIntent = new Intent();
viewIntent.setAction(Intent.ACTION_VIEW);
viewIntent.setDataAndType(Uri.fromFile(file), mimeType);
// using the packagemanager to query is faster than trying startActivity
// and catching the activity not found exception, which causes a stack unwind.
List<ResolveInfo> resolved = getPackageManager().queryIntentActivities(viewIntent, 0);
if(resolved != null && resolved.size() > 0)
{
startActivity(viewIntent);
}
else
{
// notify the user they can't open it.
}
}