Ваш телефон не обнаруживает PDF, потому что URL, который вы используете, является объектом String, а не объектом PDF. Технически, он никогда не должен открываться с телефона в формате PDF, если вы не загрузите PDF. Чтение PDF-файлов на телефоне активируется только после того, как ОС Android сообщит им, что у него есть действительный файл PDF. Пожалуйста, посмотрите исходный код любой из библиотек PDF, чтобы понять это лучше -> https://android-arsenal.com/tag/72?sort=created
Однако, чтобы ответить на вашу проблему, попробуйте открыть URL-адрес в качестве URL-адреса. Он активирует браузер на вашем телефоне, который, в свою очередь, обнаружит, что ему нужен PDF-ридер и активирует соответствующий считыватель.
Что-то вроде
String url = "https://firebasestorage.googleapis.com/v0/b/realtime-chat-46f4c.appspot.com/o/documents%2Fbf307aa5-79ae-4532-8128-ee394537b357.pdf?alt=media&token=2d0c5329-4717-4adc-9418-6614913e5bfa";
public void openWebPage(String url) {
Uri webpage = Uri.parse(url);
Intent intent = new Intent(Intent.ACTION_VIEW, webpage);
if (intent.resolveActivity(getPackageManager()) != null) {
startActivity(intent);
}
}
Тем не менее, я думаю, что вы хотите просто проверить, успешно ли загружен файл. И если на телефоне есть локальная копия, просто откройте локальную копию вместо загрузки другой копии. Если это так, то я рекомендую использовать метаданные файлов для достижения этого. Что-то вроде:
// Create file metadata including the content type
StorageMetadata metadata = new StorageMetadata.Builder()
.setCustomMetadata("myPDFfile", "localPDFfileName")
.build();
// Upload the file and metadata
uploadTask = storageRef.child("pdf/localPDFfileName.pdf").putFile(file, metadata);
И в своем слушателе успеха извлеките метаданные файла. Если он загружен и выглядит полным, откройте PDF из своего локального телефона. Если нет, попробуйте загрузить из downloadURL, как я упоминал в начале сообщения. Это должно охватывать проверки, которые вы пытаетесь сделать.
Подумайте подробнее, если я не понял вашу проблему, правильно. Я подберу его и соответствующим образом изменю свой ответ.