gpt4 book ai didi

java - 如何获取/DCIM/Camera上的图像文件数组?

转载 作者:行者123 更新时间:2023-12-02 04:06:05 24 4
gpt4 key购买 nike

我正在尝试获取默认图像位置中的图像并将文件名打印到 TextView 中。

当我尝试访问该目录时,我总是在 listFiles 上收到空指针异常。我尝试了几种方法来获取目录路径,但似乎没有任何效果。

我什至在 list 中设置了权限。 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

final String NEW_LINE = "\n";

final Button button = (Button) findViewById(R.id.renameImgBtn);
final TextView textView = (TextView) findViewById(R.id.textView);

textView.setMovementMethod(new ScrollingMovementMethod());

button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
File camDir = new File("/sdcard/DCIM/"); // wtf is this supposed to be!?

textView.append(camDir.getAbsolutePath() + NEW_LINE);
if (camDir == null) {
textView.append("camDir is null" + NEW_LINE);
} else {
textView.append("camDir is not null" + NEW_LINE);

// get nullpointerexception on listFiles
File[] files = camDir.listFiles();
if (files == null) {
textView.append("files is null" + NEW_LINE);
} else {
for (final File file : files) {
textView.append(file.getName() + NEW_LINE);
}
}
}
}
});
}

我使用的是 Nexus 6P,图像位于 DCIM/Camera/下。

最佳答案

首先,DCIM目录由DIRECTORY_DCIM定义。并应与 Environment.getExternalStoragePublicDirectory() 结合使用:

File camDir = Environment.getExternalStoragePublicDirectory(
Environment.DIRECTORY_DCIM);

其次,由于您使用的是 Marshmallow 设备,如果您的目标是 API 23,则必须 request dangerous permissions at runtime - READ_EXTERNAL_STORAGE 是一个危险的权限,属于这些规则的范围。

关于java - 如何获取/DCIM/Camera上的图像文件数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34249132/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com