代码不能在手机上工作,但在仿真器上工作,为什么?

时间:2015-09-26 05:59:22

标签: android android-emulator

此代码在模拟器(Geneymotion)上完美运行,但在手机或平板电脑中无效:

     Document doc = new Document();
     try {

                 String path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)
 + "/invoices";

                 File dir = new File(path);
                 if(!dir.exists())
                     dir.mkdirs();

                 Log.d("PDFCreator", "PDF Path: " + path);

                 File delete = new File(dir, "invoice.pdf");
                 if (delete.exists())
                     delete.delete();

                 File file = new File(dir, "invoice.pdf");

 FileOutputStream fOut = new FileOutputStream(file);

             PdfWriter.getInstance(doc, fOut);

             //open the document
             doc.open();
             Paragraph name = new Paragraph("NAME");
             doc.add(name);
     } catch (DocumentException de) {
                 Log.e("PDFCreator", "DocumentException:" + de);
             } catch (IOException e) {
                 Log.e("PDFCreator", "ioException:" + e);
             }
     finally
     {
        doc.close();
     }

我已添加了所需的权限。

我的问题是,为什么一段代码在模拟器中工作,而不是在实际设备上?不是模拟器假设模拟设备吗?所以结果不应该相同吗?

当我单击按钮时,上面的代码运行,当我点击该按钮时,在模拟器中,它在指定的目录中创建文件,但是当我在手机中测试它时,当我按下按钮时,没有任何反应,没有文件已创建,也未创建任何文件夹。

有什么问题?任何人都可以给我一些方向。

0 个答案:

没有答案