Android 有没有一种使用谷歌文档读取本地pdf文件的方法

Android 有没有一种使用谷歌文档读取本地pdf文件的方法,android,pdf,Android,Pdf,我看到了一种使用谷歌文档阅读在线pdf文件的方法 是否有一种方法可以使用它查看存储在sd卡中的本地文件您可以启动一个意图,允许用户选择使用以下代码打开PDF的应用程序,该应用程序适用于任何文件和mimetype。如果用户没有可以打开它的应用程序,您可以显示错误或执行任何其他需要执行的操作 请注意,该文件必须是全世界可读的,因此如果它在内部存储器上,或者它必须在外部存储器中,则必须将其标记为全世界可读 private void openFile(File f, String mimeType)

我看到了一种使用谷歌文档阅读在线pdf文件的方法


是否有一种方法可以使用它查看存储在sd卡中的本地文件

您可以启动一个意图,允许用户选择使用以下代码打开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.
    }
}
private void openFile(文件f,字符串mimeType)
{
Intent viewIntent=新Intent();
viewIntent.setAction(Intent.ACTION\u视图);
setDataAndType(Uri.fromFile(file),mimeType);
//使用packagemanager进行查询比尝试startActivity更快
//并捕获导致堆栈展开的“未找到的活动”异常。
已解析列表=getPackageManager().QueryInputActivities(viewIntent,0);
if(已解析!=null&&resolved.size()>0)
{
startActivity(viewIntent);
}
其他的
{
//通知用户他们无法打开它。
}
}

要做到这一点,您必须编写自己的PDF解析器,或者使用某种第三方库。这是使用其他应用程序提供功能的“Android方式”:对用户来说,打开PDF或其他文件的阅读器会感觉像是应用程序的一部分。webview不会像iphone那样呈现PDF。。我可能会从网络上采用一种一次只显示一个页面的方式。不,Android WebView不显示PDF,第三方应用程序就是这样做的。你应该尝试一下我发布的方式,看看它是如何工作的,最终它将提供比在Android上做一些非标准的事情更好、更一致的用户体验。嗯。。。永远的要求是。。此链接可能有助于等待已久的响应…但可以尝试此链接。