これは機能します。URLを介して使用した場合、setDataAndTypeメソッドはPDFタイプを正しく認識できないようです。
private static Intent newPDFLinkIntent(String url) {
Uri pdfURL = Uri.parse(url);
Intent pdfDownloadIntent = new Intent(Intent.ACTION_VIEW, pdfURL);
pdfDownloadIntent.setType("application/pdf");
pdfDownloadIntent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
return pdfDownloadIntent ;
}
残念ながら、私が使用しているPDFアプリケーションは、オンラインコンテンツのダウンロードとキャッシュを予期していません(メモリリークエラーが発生するものもあれば、リンクのダウンロードを拒否するものもあります)。そのため、最終的には、最初にPDFをダウンロードするインテントを呼び出すことになります。通知リンクを介してダウンロードしたコンテンツを開く前。私は最終的に以下の解決策を使用しました:
private static Intent newPDFLinkIntent(String url) {
Intent pdfDownloadIntent = null;
try {
pdfDownloadIntent = Intent.parseUri(url, Intent.URI_INTENT_SCHEME);
pdfDownloadIntent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
} catch (URISyntaxException e) {
Log.e("PDF Link Tag", e.getMessage());
}
return pdfDownloadIntent;
}