0

これは、SDカードからファイルをダウンロードして開くコードです。

しかし、ファイルをダウンロードした後、ファイルをクリックして開くと、トースト メッセージが表示されます。cannot open file

エラー箇所を教えてください。

package com.pdf;

import java.io.File;
import android.app.Activity;
import android.content.ActivityNotFoundException;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.webkit.WebView;
import android.widget.Toast;

public class PdffileActivity extends Activity 
{
   WebView webview;

    @Override
    public void onCreate(Bundle savedInstanceState)
    {
       super.onCreate(savedInstanceState);

      setContentView(R.layout.main);
      webview = (WebView) findViewById(R.id.webview);

      String pdf = "http://officeofthemufti.sg/MaulidBooklet.pdf";
      webview.loadUrl("http://docs.google.com/gview?embedded=true&url=" + pdf);
      setContentView(webview);

      File file=new File("/sdcard/MaulidBooklet.pdf");

      if (file.exists())
      {
         Uri path = Uri.fromFile(file);
         Intent intent = new Intent(Intent.ACTION_VIEW);
         intent.setDataAndType(path, "application/pdf");
         intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
         startActivity(intent);

        try
        {
           startActivity(intent);
        }
        catch (ActivityNotFoundException e)
        {
           Toast.makeText(PdffileActivity.this,
                          "No Application Available to View PDF",
                          Toast.LENGTH_SHORT).show();
        }
    }
}
4

1 に答える 1

0

あなたが言うようにプログラムで開きたい場合、そしてそれが標準の「ダウンロード」ディレクトリにダウンロードされていると仮定すると、新しいファイルの宣言とインスタンス化を次のように変更できます。

File file = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)  + "/MaulidBooklet.pdf");

これは、Android 2.2 以降を使用していることを前提としています。

DDMS を使用してデバイスの「ダウンロード」ディレクトリを参照すると、ファイルが実際にこのディレクトリにダウンロードされていることを確認できます。

于 2012-06-26T18:17:45.870 に答える