如何从sdcard在android模拟器中打开pdf文件

时间:2013-01-16 06:03:36

标签: android pdf sd-card

嗨,我是Android开发新手。我通过ddms在emulator sdcard中手动保存了一个pdf文件,当我试图在模拟器中读取pdf文件时,我还在模拟器中安装了“ adobe reader ” 使用以下代码

File file = 
new File(Environment.getExternalStorageDirectory().getAbsolutePath()+"/iTunes Connect.pdf");
        Uri path = Uri.fromFile(file);
        Intent intent = new Intent(Intent.ACTION_VIEW);
        intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        intent.setDataAndType(path,"application/pdf");
        try 
        {
            startActivity(intent);
        } 
        catch (ActivityNotFoundException e) 
        {
            Toast.makeText(xv.this, 
                getString(R.string.app_name), 
                Toast.LENGTH_SHORT).show();
        }

我收到的文件路径无效错误。

任何人都可以帮助我。

4 个答案:

答案 0 :(得分:0)

%20iTunes之间使用20Connect.pdf(用于空格)。

File file = new File(Environment.getExternalStorageDirectory().getAbsolutePath()+"/iTunes%20Connect.pdf");

我认为这将解决您的问题

答案 1 :(得分:0)

尝试这条路径

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

我认为这适用于你

答案 2 :(得分:0)

我认为你不应该使用硬编码文件路径。 该框架将为您提供要将文件保存到的区域的基本路径。

对于SD卡,您应该使用Environment.getExternalStorageDirectory()

你应该使用

本地文件,使用Context.getFilesDir()(或Context.openFileOutput(String name,int mode)等)

你应该使用本地缓存,使用Context.getCacheDir()

对于模拟器,您可以尝试File file = new File(“mnt / sdcard / iTunes Connect.pdf”);

答案 3 :(得分:0)

我认为你的模拟器没有adobe reader安装请先检查它是否安装

 File file = new File(Environment.getExternalStorageDirectory().getAbsolutePath() +"/"+ filename);
    Intent target = new Intent(Intent.ACTION_VIEW);
    target.setDataAndType(Uri.fromFile(file),"application/pdf");
    target.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);

    Intent intent = Intent.createChooser(target, "Open File");
    try {
        startActivity(intent);
    } catch (ActivityNotFoundException e) {
        // Instruct the user to install a PDF reader here, or something
    }   `enter code here`