设置标题以选择应用程序以从浏览器打开pdf

时间:2014-06-24 15:26:56

标签: android spring android-intent http-headers

您好,在我的网络应用中,用户可以下载pdf文件。

在PC上没有问题,pdf文件在浏览器上打开,然后你可以选择一些动作,下载或打印等。

所以我正在尝试使用平板电脑,当我点击下载时,我会选择使用应用程序来打开pdf文件,或者如果有的话,则选择默认值。

这是我下载文件的方法,在其中我设置了标题:

public static HttpEntity<byte[]> downloadPdfFile(final String fileName, final byte[] item){

        HttpHeaders header = new HttpHeaders();
        header.setContentType(MediaType.valueOf("application/pdf"));
        header.setContentLength(item.length);

        return new HttpEntity<byte[]>(item, header);
    }

更新 如果在我的网址中我添加了例如fileName.pdf之前下载它的menù以选择使用该应用程序..

所以我在我的应用中添加了这个intent filter,以便将其展示给menù:

<intent-filter>
                <action android:name="android.intent.action.VIEW"/>
                <category android:name="android.intent.category.DEFAULT"/>
                <data android:scheme="file" android:pathPattern=".*\\.pdf"/>
            </intent-filter>

            <intent-filter>
                <action android:name="android.intent.action.VIEW"/>
                <category android:name="android.intent.category.DEFAULT"/>
                <data android:mimeType="application/pdf"/>
            </intent-filter>

但我的应用程序并不适用于menù..

你有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我解决了,2天后它就可以了!

这是我的解决方案: 将fileName.pdf传递给url以下载并使用这些意图过滤器:

  <intent-filter>
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.BROWSABLE" />
    <category android:name="android.intent.category.DEFAULT" />
    <data android:scheme="http" />
    <data android:host="*" />
    <data android:pathPattern=".*\\.pdf" />
  </intent-filter>
  <intent-filter>
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.BROWSABLE" />
    <category android:name="android.intent.category.DEFAULT" />
    <data android:scheme="http" />
    <data android:host="*" />
    <data android:mimeType="application/pdf" />
  </intent-filter>
  <intent-filter>
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <data android:scheme="file" />
    <data android:host="*" />
    <data android:pathPattern=".*\\.pdf" />
  </intent-filter>