如何在下载目录中创建Android中所有用户都可以看到的文件?

时间:2016-02-17 04:01:34

标签: android

我正在尝试在运行时创建一个文件并将其保存在Downloads目录中。我正在成功创建文件,如下面的屏幕截图所示,但我无法查看。

在下面的代码中,我正在检查权限,创建文件,写入文件并关闭它。然后我打印下载目录的内容,以便我可以确认该文件已经创建。是的!

        Log.d("DOM", Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED) + "");

        // check for permission at runtime
        if (ContextCompat.checkSelfPermission(context, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED)
            ActivityCompat.requestPermissions((Activity) context, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1);

        // create new file in downloads dir with name test.json
        File file = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS), "test.json");

        if (!file.exists())
            file.createNewFile();

        file.setReadable(true, false);

        FileOutputStream fileOutputStream = new FileOutputStream(file);
        fileOutputStream.write("test string".getBytes());
        fileOutputStream.close();

        for (int i = 0; i < Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).listFiles().length; i++)
            Log.d("DOM", Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).listFiles()[i].getAbsolutePath() + "");

A screenshot of all the files in the Downloads directory.

问题是,如果我查看手机的下载应用程序,我看不到创建的文件。当我查看计算机上的文件夹时,我也看不到文件。

额外细节: 顺便说一句,我的清单......这不在应用程序标签中。

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

以下行返回false(我之前将其打印到日志中)

file.setReadable(true, false);

此外,该应用仅请求了一次权限。我认为这正是应该发生的事情。

0 个答案:

没有答案