Androidはワンツーパンチ 三歩進んで二歩下がる

プログラミングやどうでもいい話

PDFを閲覧できるアプリが1つもなかった時Web上のPDFをブラウザでGoogleDocsとして開く

自分用メモです

        // ローカルのPDFをintentを使って開く
        File pathExternalDir = getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS);
        String filepath = pathExternalDir + "/handbook.pdf";
        File file = new File(filepath);
        if (!file.exists()) {
            showAlert(getResources().getString(R.string.text_download_alert));
            return;
        }
        Intent intent2 = new Intent(Intent.ACTION_VIEW);
        intent2.setDataAndType(Uri.parse("file://" + filepath), "application/pdf");

        intent2.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
                | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
        try {
            startActivityForResult(intent2, REQUEST_CODE);
        } catch (ActivityNotFoundException e) {
            // PDFを閲覧できるアプリが1つもなかった時ブラウザでGoogleDocsとして開く
            intent2 = new Intent(Intent.ACTION_VIEW);
            intent2.setDataAndType
                    (Uri.parse("http://docs.google.com/viewer?url=" + Consts.URL_PDF),
                            "text/html");
            startActivityForResult(intent2, REQUEST_CODE);
        } catch (Exception e) {
            e.printStackTrace();
            showAlert(getResources().getString(R.string.text_download_err2));
        }