以下是我的要求: 我的活动中有一个复选框。如果选中该复选框,我会添加一个' .nomedia'文件以隐藏我的文件夹中的所有照片。如果取消选中该复选框,我将删除' .nomedia'文件,显示文件夹中的所有照片。我的问题是,虽然创建/删除了'.nomedia'文件成功,图像的隐藏/取消隐藏不会发生在android gallery应用程序中。如何根据我的复选框状态强制图库应用显示/隐藏文件夹内容?
以下是我的代码:
CheckBox checkBox = (CheckBox) findViewById(R.id.checkBox1);
if (checkBox.isChecked()) {
hideFolder();
} else {
unHideFolder();
}
private void hideFolder() {
File targetDir = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + CONSTANTS.MYFOLDERPATH);
File noMediaFile = new File(targetDir, ".nomedia");
try {
if (!noMediaFile.exists()) {
noMediaFile.createNewFile();
}
} catch (IOException ex) {
ex.printStackTrace();
}
}
private void unHideFolder() {
File targetDir = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + CONSTANTS.MYFOLDERPATH);
File noMediaFile = new File(targetDir, ".nomedia");
if (noMediaFile.exists()) {
noMediaFile.delete();
}
}
答案 0 :(得分:0)
您需要强制启动媒体扫描。因此,对于SD卡上的媒体索引,.nomedia将不会立即反映出来。在这样做的方法是清除Gallery应用程序的数据。