此代码在模拟器(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();
}
我已添加了所需的权限。
我的问题是,为什么一段代码在模拟器中工作,而不是在实际设备上?不是模拟器假设模拟设备吗?所以结果不应该相同吗?
当我单击按钮时,上面的代码运行,当我点击该按钮时,在模拟器中,它在指定的目录中创建文件,但是当我在手机中测试它时,当我按下按钮时,没有任何反应,没有文件已创建,也未创建任何文件夹。
有什么问题?任何人都可以给我一些方向。