繁体   English   中英

Android:外部存储权限问题:

[英]Android: external storage permission issue:

我真的需要有人来指导我解决外部存储或 SD 卡的一些问题。 我不会去复杂化。 我有一个名为MyVideos的文件夹。 它位于 Motrola Xoom 的 sd-card 文件夹中; 路径是"/mnt/sdcard-ext/MyVideos.文件夹已经存在。但是,我遇到了一些奇怪的错误。例如,如果我使用以下代码检查文件夹是否存在:

File myDirectory = new File(defaultStorage, "/MyVideos/"); 
if (myDirectory.exists())
{  
my code: lets say true
}
else
{
my code: false
}

其中defaultStorage is = "/mnt/sdcard-ext" 它总是返回false。 它应该返回 true,因为该文件夹肯定存在于那里。 并假设该文件夹存在于那里,我会执行其他操作,例如

for (File f : myDirectory.listFiles()) 
    {
        if (f.isFile())
        {
            filenames.add(f.getName()); //add to array

        }//if closes
     }//for closes

我在以下行收到 FATAL 异常

for (File f : myDirectory.listFiles())

错误堆栈如下:

E/AndroidRuntime(22644): FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to start activity         
E/AndroidRuntime(22644): Caused by: java.lang.NullPointerException

我刚刚提到了堆栈中重要的事情。 准确地说,它是一个 NullPointerException。 虽然我正在使用

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

在我的清单文件中。 即使那样也行不通。 令人惊讶的是,它在这里运行良好; 但是在美国有一个客户,它在他的所有设备上都崩溃了..英国或美国的设备权限设置有什么不同吗..如果你在这里帮助我,我将感谢你..这是一个对我来说是个大问题。 谢谢

根据文档,您所描述的状态意味着您无法访问外部媒体存储:

public static final String MEDIA_SHARED

在 API 级别 1 中添加 getExternalStorageState() 如果媒体不存在则返回 MEDIA_SHARED,并通过 USB 大容量存储共享。

常数值:“共享”

您需要转到 USB 大容量存储选项并关闭 USB 存储。

PS:感谢 DigCamara 我从这个SO 答案中复制。

谢谢

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM