如何在nougat 7.0中创建目录..所有设备在nougat 7.0以下工作正常但在nexus 5x中没有创建目录

时间:2016-10-14 05:13:43

标签: android-studio

我把它放在清单

<provider
    android:name="android.support.v4.content.FileProvider"
    android:authorities="${applicationId}.provider"
    android:exported="true"
    android:grantUriPermissions="true">
    <meta-data
        android:name="android.support.FILE_PROVIDER_PATHS"
        android:resource="@xml/provider_paths"/>
</provider>

在Res中创建路径Xml

<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
    <external-path name="external_files" path="."/>
</paths>

Java代码如下:

Intent shareIntent = new Intent(Intent.ACTION_SEND);
                shareIntent.setType("application/pdf");
                shareIntent.putExtra(Intent.EXTRA_SUBJECT, "Sheep Drench Calculations " );
                shareIntent.putExtra(Intent.EXTRA_TEXT, "Please find attached the report generated from the Sheep Drench App");
                Uri pdfURI = FileProvider.getUriForFile(EmailSend.this,
                        BuildConfig.APPLICATION_ID + ".provider",
                        (new File(pdfDir ,"ResultPDF.pdf")));
                shareIntent.putExtra(Intent.EXTRA_STREAM, (pdfURI));
                startActivity(shareIntent);

更多java代码:

File pdfDir = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/Dir");
                    if (!pdfDir.exists()) {
                        pdfDir.mkdir();
                    }

它创建了目录但是当它进入目录内部时它通过异常没有这样的目录或文件。             我试过这个从文件发送电子邮件但问题仍然存在..导演没有创建......

1 个答案:

答案 0 :(得分:1)

尝试将.mkdir()更改为.mkdirs()并确保您在清单中写入外部存储权限