2016-11-26 5 views
-2
File file = new File(s); 
    Intent intent = new Intent(Intent.ACTION_VIEW); 
    intent.setDataAndType(Uri.fromFile(file), "application/pdf"); 
    intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY); 
    try { 
     startActivity(intent); 
    } 
    catch(Exception e) 
    { 
     file.delete(); 
     downloadFile(file); 
    } 

Androidで外部アプリケーションを使用してPDFを開こうとしています。ファイルが完全にダウンロードされた場合、PDFファイルが開き、表示されます。 ファイルが空であるか破損している場合は、ファイルを削除してダウンロードします。外部アプリケーションを使用してAndroidでファイルを開くことができない方法

しかし、私は、「文書を開くことができません」

例外を処理することはできませんよ。

+0

ここで、例外は正確にわかりますか?スタックトレースを表示します。 – greenapps

+0

'(s)'あなたは 's'の値がirrelevanfだと思いますか? – greenapps

+0

あなたのpdfファイルの場所はどこですか?これは、サードパーティ製のアプリケーションアクションを表示することに依存しているためです。 –

答えて

0

しかし、私は、「文書を開くことができません」 例外を処理することはできませんよ。

あなたが示したコードスニペットの外にある可能性があります。可能なコードはdownloadFile()です。そうであれば、try/catchが必要です(または少なくともdownloadFile()メソッド呼び出しが必要です)。 catch()にいると、後続の例外を自動的にキャッチすることはできません。

0

あなたのpdfファイルが整形式でないために開くことができないか、またはpdfを開くためにサポートされているアプリケーションがありません。

ファイルが存在するかどうかをチェックし、ファイルが存在する場合は、ACTION_VIEWインテントフィルタを持つすべてのアプリケーションをチェックしてみましょう。

try { 
      File file = new File(s); 
      if (file.exists()) { 
       Intent intent = new Intent(Intent.ACTION_VIEW, Uri.fromFile(file)); 
       startActivity(intent); 
      } else { 
       downloadFile(file); 
      } 
     } catch (Exception e) { 
      file.delete(); 
      downloadFile(file); 
     } 
関連する問題