堆栈上有几个问题正好问了这个问题,但似乎没有一个答案能以任何方式解决这个问题。请注意,我正在使用处理环境进行编码,该环境使用 java,但带有包装器。不过,所有 Java 代码都可以在本机运行。
代码在 android 10 huawei mate 20 emui 10 上运行。
这是我的代码。只有第一个 for 循环返回任何值,返回“emulated”、“sdcard0”和“self”,但是后续文件夹使用相同的函数返回 null。已在清单和 pde 应用中设置权限。
import android.os.Environment;
import android.os.Build ;
import android.app.Activity;
import android.content.Context;
Permission rStorage,wStorage;
void setup(){
rStorage = new Permission(this,"READ_EXTERNAL_STORAGE");
rStorage = new Permission(this,"WRITE_EXTERNAL_STORAGE");
//String path = Environment.getExternalStorageDirectory("storage/").toString();
//println("Files", "Path: " + path);
File directory = new File("storage/");
File[] files = directory.listFiles();
if(files!=null){
println("Files", "Size: "+ files.length);
for (int i = 0; i < files.length; i++)
{
println("Files", "FileName:" + files[i].getName());
}
}else println("Files",null);
directory = new File("storage/emulated");
files = directory.listFiles();
if(files!=null){
println("Files", "Size: "+ files.length);
for (int i = 0; i < files.length; i++)
{
println("Files", "FileName:" + files[i].getName());
}
}else println("Files emulated",null);
directory = new File("storage/sdcard0");
files = directory.listFiles();
if(files!=null){
println("Files", "Size: "+ files.length);
for (int i = 0; i < files.length; i++)
{
println("Files", "FileName:" + files[i].getName());
}
}else println("Files sdcard0",null);
directory = new File("storage/self/");
files = directory.listFiles();
if(files!=null){
println("Files", "Size: "+ files.length);
for (int i = 0; i < files.length; i++)
{
println("Files", "FileName:" + files[i].getName());
}
}else println("Files self",null);
};
void draw(){
};
我的权限等级
public class Permission{
PApplet parent;
public boolean requestedPortraitImage = false;
public Permission(PApplet pParent,String permissionName) {
parent = pParent;
parent.requestPermission("android.permission."+permissionName, "onPermissionResult", this);
println(permissionName);
};
public void onPermissionResult(boolean granted) {
if (!granted) {
PApplet.println("User did not grant camera permission. Camera is disabled.");
}
};
};