Надежно определять поддержку PDF на устройстве Android - PullRequest
13 голосов
/ 04 февраля 2011

Я использую метод определения поддержки PDF на устройстве Android, который выглядит следующим образом:

public boolean canDisplayPdf() {
    PackageManager packageManager = application.getPackageManager();
    Intent testIntent = new Intent(Intent.ACTION_VIEW);
    testIntent.setType("application/pdf");
    if (packageManager.queryIntentActivities(testIntent, PackageManager.MATCH_DEFAULT_ONLY).size() > 0) {
        return true;
    } else {
        return false;
    }
}

И до сих пор он работал отлично.Я знаю, что, по крайней мере, программа HTC для просмотра по умолчанию, droidreader и Adobe Acrobat получают информацию таким образом, и возвращается правильный результат.Однако теперь я получил комментарий к консоли рынка от пользователя, который говорит, что у него есть поддержка PDF на устройстве, но из описанного поведения приложения я заключаю, что этот метод возвращает false.

Есть ли лучший способ определить поддержку pdf?

PS: Я бы хотел попросить у пользователя подробную информацию о рынке.

Ответы [ 2 ]

3 голосов
/ 03 июня 2011

Из всех найденных мной источников и практического опыта тестирования на довольно большом разнообразии устройств выбранный мной подход верен.

У меня не было никаких дальнейших отзывов, и я думаю, что это могло быть из-за ошибки пользователя или из-за неверной версии приложения в формате PDF.

2 голосов
/ 02 июня 2011

Вы делаете это правильно.Вы можете обновить описание вашего приложения, чтобы сказать, что вы вызываете приложение PDF, используя одобренный Android метод с типом MIME application / pdf.Также отметьте, что если у пользователей возникают какие-либо проблемы с приложением, вы бы хотели получить электронное письмо по адресу blahblah@myappsupport.com (или по другому адресу электронной почты службы поддержки вашего приложения).Возможно, тогда они отправят электронное письмо вместо того, чтобы просто оставить анонимный комментарий.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...