Android:外部存储权限问题:

p8h8hvxi  于 2022-12-31  发布在  Android
关注(0)|答案(1)|浏览(177)

我真的需要有人在这里指导我关于外部存储或sd卡的一些问题。我不会进入复杂的。我有一个文件夹与名称为MyVideos。它位于Motrola Xoom的sd卡文件夹;路径是"/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" />

在我的清单文件中。即使这样它也不工作。最令人惊讶的是它在这里运行得很好;但是有一个客户在美国,它是崩溃的所有设备。有什么不同的设备在英国或美国的权限设置。我将感谢你,如果你在这里帮助我。这是一个大问题,我。谢谢

1cklez4t

1cklez4t1#

根据文档,您所描述的状态意味着您无法访问外部媒体存储:
公共静态最终字符串MEDIA_SHARED
在API级别1中添加getExternalStorageState(),如果存在未装载的介质,则返回MEDIA_SHARED,并通过USB大容量存储器共享。
常数值:"共享"
您需要转到USB大容量存储选项并关闭USB存储。
PS:多亏了DigCamara,我从这个SO answer中复制了。
谢啦,谢啦

相关问题