Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Android设备上可靠地检测PDF支持_Android_Pdf - Fatal编程技术网

在Android设备上可靠地检测PDF支持

在Android设备上可靠地检测PDF支持,android,pdf,Android,Pdf,我正在使用一种方法检测Android设备上的pdf支持,如下所示 public boolean canDisplayPdf() { PackageManager packageManager = application.getPackageManager(); Intent testIntent = new Intent(Intent.ACTION_VIEW); testIntent.setType("application/pdf"); if (packageM

我正在使用一种方法检测Android设备上的pdf支持,如下所示

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会以这种方式得到报告,并返回正确的结果。然而,我现在在market console上收到一位用户的评论,说他在设备上支持pdf,但从应用程序的描述行为来看,我得出结论,该方法返回false

有没有更好的方法来检测pdf支持


附言:我希望能够询问用户有关市场的详细信息。

你做得对。你可以考虑更新你的应用程序的描述,以告诉你使用Android批准的应用程序/PDF MIME类型的PDF应用程序。此外,如果用户对该应用程序有任何问题,请发送电子邮件至blahblah@myappsupport.com(或您的应用程序支持电子邮件地址设置为什么)。也许他们会发一封电子邮件,而不是只留下匿名评论。

从我找到的所有来源以及在各种设备上进行测试的实践经验来看,我所采取的方法是正确的


我没有得到任何进一步的反馈,我认为可能是用户错误或涉及到一个糟糕的pdf应用程序版本

你问用户有关市场的详细信息是什么意思?在他们安装你的应用程序之前,是否要检查他们是否安装了PDF阅读器?我无法与用户就Android market上的评论展开对话。有时候能做到这一点会很好。在这种情况下,如果知道安装了什么pdf应用程序,那就太好了,因为它有一个bug,因为它不会对这个意图作出反应。。。我可以向上述应用程序的制造商报告这个错误。看起来他们使用的任何pdf查看器在处理意图时都没有设置为使用默认类别。你可以使用0作为你的标志,而不是PackageManager.MATCH_DEFAULT_,来解决这个问题,但是如果出于某种原因,有一些应用程序有意注册PDF上的ACTION_视图,但不想用于查看它们,那么这可能会给你带来虚假的结果。这似乎不太可能,但这是一个广阔的世界,所以你永远不会知道。:)你所做的是正确的方法。我同意能够回应用户是件好事,因为这些问题在其他方面是痛苦的。你不应该排除用户声称其设备上支持PDF的可能性:)。仅仅因为有PDF查看器并不意味着它为该文件类型注册了意图过滤器-用户可能必须首先打开应用,浏览文件列表,然后从中打开一个。询问用户他们有什么PDF阅读器。如果可能的话,告诉他们下载AdobePDF阅读器,然后再试一次。不知道为什么你会被否决——所以我给了你+1