为什么不在某些android设备的内部存储中创建文件夹?

为什么不在某些android设备的内部存储中创建文件夹?,android,android-studio,directory,Android,Android Studio,Directory,我在内部存储器中创建了一个文件夹,用于存储文件。但问题是,在某些Android设备中,该文件夹并没有创建。该文件夹是在棒棒糖设备中创建的,但不是在奥利奥和牛轧糖中创建的 有什么问题 高级API是否需要其他权限 用于在内部存储器中创建文件夹的代码 File f1=新文件(Environment.getExternalStorageDirectory(),Constants.STORED\u文件夹); 如果(!f1.exists()){ f1.mkdirs(); } Log.e(“check_p

我在内部存储器中创建了一个文件夹,用于存储文件。但问题是,在某些Android设备中,该文件夹并没有创建。该文件夹是在棒棒糖设备中创建的,但不是在奥利奥和牛轧糖中创建的

  • 有什么问题
  • 高级API是否需要其他权限
用于在内部存储器中创建文件夹的代码

File f1=新文件(Environment.getExternalStorageDirectory(),Constants.STORED\u文件夹);
如果(!f1.exists()){
f1.mkdirs();
}
Log.e(“check_path”,“”+f1.getAbsolutePath());
另外,我还有一个问题,就是如何使文件夹在库中可见

它在画廊中不可见?如何解决这个问题

该文件夹是在棒棒糖设备中创建的,但不是在奥利奥和牛轧糖中创建的。有什么问题

由于Android 6.0(如果我的内存正确的话),许多权限需要动态分配(在运行时)。你需要这样做

高级API是否需要其他权限

基本权限是WRITE_EXTERNAL_STORAGE,但您不仅需要在AndroidManifest.xml中声明它,还需要在运行时声明它

另外,我还有一个问题,如何使文件夹在库中可见。它在画廊中不可见?如何解决这些问题

如果您指的是照片库,您可能需要等待媒体进程扫描整个SD卡,才能将文件夹(其中必须包含一些照片)添加到照片库中

该文件夹是在棒棒糖设备中创建的,但不是在奥利奥和牛轧糖中创建的。有什么问题

由于Android 6.0(如果我的内存正确的话),许多权限需要动态分配(在运行时)。你需要这样做

高级API是否需要其他权限

基本权限是WRITE_EXTERNAL_STORAGE,但您不仅需要在AndroidManifest.xml中声明它,还需要在运行时声明它

另外,我还有一个问题,如何使文件夹在库中可见。它在画廊中不可见?如何解决这些问题


如果您指的是照片库,您可能需要等待媒体进程扫描整个SD卡,才能将文件夹(其中必须包含一些照片)添加到照片库中。

要立即显示文件夹,您需要发送广播

sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED,
        Uri.parse("file://"
                + Environment.getExternalStorageDirectory())));

此代码将告诉gallery应用程序已添加内容,因此请立即重新扫描媒体

要立即显示文件夹,您需要发送广播

sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED,
        Uri.parse("file://"
                + Environment.getExternalStorageDirectory())));

此代码将告诉gallery应用程序已添加内容,因此请立即重新扫描媒体

您必须在创建文件夹之前添加请求权限。 请参阅以下链接:


在创建文件夹之前,必须添加请求权限。 请参阅以下链接:



根据我的回答生成一个问题:应用程序是否可以在gallery中强制添加文件夹?我在内部存储器中创建的文件夹在gallery中不可见。所以每次我想访问文件资源管理器来检查文件夹。它是如何在画廊中可见的?@Neetha看到下面Dhiraj的答案。谢谢。我已经按照您的建议创建了文件夹。我还通过在androidA中使用MediaScannerConnection使其在gallery中可见。我的回答生成了一个问题:应用程序是否可以在gallery中强制添加文件夹?我在内部存储中创建的文件夹在gallery中不可见。所以每次我想访问文件资源管理器来检查文件夹。它是如何在画廊中可见的?@Neetha看到下面Dhiraj的答案。谢谢。我已经按照您的建议创建了文件夹。我还通过在androidYou中使用MediaScannerConnection使其在gallery中可见,您必须在运行时请求用户许可。可能您的目标不是oreo和nougat版本的运行时权限。您必须在运行时请求用户权限。可能是您没有针对oreo和nougat版本的运行时权限。这个答案是Geno Chen回答的附加项。您能告诉我要将此代码放置在哪里吗?这里的“file://”是什么?这是我们的文件夹名吗?@Neetha我想,把照片放进文件夹后,把它放在哪里。“file://”是文件的默认架构,由URI格式指定。您可以手动将
Uri.parse()
中的参数重写为您的照片目录。此答案是Geno Chen answer的附加项。您能告诉我要将此代码放置在何处吗?这里的“file://”是什么?这是我们的文件夹名吗?@Neetha我想,把照片放进文件夹后,把它放在哪里。“file://”是文件的默认架构,由URI格式指定。您可以手动将
Uri.parse()中的参数重写为照片目录。