如何以编程方式切换 .nomedia 文件
how to toggle .nomedia file programmatically
我正在创建一个应用程序来显示和隐藏位于 /viber/media/ 的 Viber App 的 "Viber Images" 文件夹。我知道我应该在该文件夹中删除并创建 .nomedia 文件,然后强制媒体扫描仪扫描它。
当我发送广播或静态使用 MediaScannerConnection 重新扫描该文件夹时,画廊需要四分之一以上的时间来更新该文件夹。
我试过了:
String dir = Environment.getExternalStorageDirectory().getAbsolutePath()+"/viber/media/Viber Images/";
File f = new File(dir);
Uri uri = Uri.fromFile(f);
Intent in = new Intent(Intent.ACTION_MEDIA_MOUNTED,uri);
sendBroadcast(in);
但它没有更新媒体扫描仪,因为画廊中正在显示文件夹。
我也试过了:
MediaScannerConnection.scanFile(MainActivity.this, new String[{"/storage/sdcard0/viber/media/Viber Images/"}, null, new MediaScannerConnection.OnScanCompletedListener() {
public void onScanCompleted(String path, Uri uri) {
Log.d("file",path+" scanned");
Log.d("url","uri = "+uri);
}
});
并且 logcat 显示:
03-07 15:42:10.180: D/MediaScannerConnection(15267): Connected to MediaScanner
03-07 15:42:10.180: D/MediaScannerConnection(15267): Scanning file 7klwibgf7kdcbid(7mrafi7vfdrb7
03-07 15:42:10.670: D/file(15267): /storage/sdcard0/viber/media/Viber Images/ scanned
03-07 15:42:10.670: D/url(15267): uri = content://media/external/file/130512
03-07 15:42:10.670: D/MediaScannerConnection(15267): Disconnecting from MediaScanner
它似乎正在更新媒体扫描仪数据库,但无法影响图库应用更新其内容。
Playstore 中有一个名为 nomedia 的免费应用程序,它完全符合我在 phone 中的要求,但我的代码无法正常工作。
是否有任何方法或内置 class 可以做到这一点?或者有什么方法可以通过编程方式做到这一点?
抱歉我的英语不好。
感谢任何回答。
首先重命名文件夹。然后从媒体数据库中删除文件夹数据。然后重命名该文件夹。强制扫描仪扫描它...
我正在创建一个应用程序来显示和隐藏位于 /viber/media/ 的 Viber App 的 "Viber Images" 文件夹。我知道我应该在该文件夹中删除并创建 .nomedia 文件,然后强制媒体扫描仪扫描它。
当我发送广播或静态使用 MediaScannerConnection 重新扫描该文件夹时,画廊需要四分之一以上的时间来更新该文件夹。
我试过了:
String dir = Environment.getExternalStorageDirectory().getAbsolutePath()+"/viber/media/Viber Images/";
File f = new File(dir);
Uri uri = Uri.fromFile(f);
Intent in = new Intent(Intent.ACTION_MEDIA_MOUNTED,uri);
sendBroadcast(in);
但它没有更新媒体扫描仪,因为画廊中正在显示文件夹。
我也试过了:
MediaScannerConnection.scanFile(MainActivity.this, new String[{"/storage/sdcard0/viber/media/Viber Images/"}, null, new MediaScannerConnection.OnScanCompletedListener() {
public void onScanCompleted(String path, Uri uri) {
Log.d("file",path+" scanned");
Log.d("url","uri = "+uri);
}
});
并且 logcat 显示:
03-07 15:42:10.180: D/MediaScannerConnection(15267): Connected to MediaScanner
03-07 15:42:10.180: D/MediaScannerConnection(15267): Scanning file 7klwibgf7kdcbid(7mrafi7vfdrb7
03-07 15:42:10.670: D/file(15267): /storage/sdcard0/viber/media/Viber Images/ scanned
03-07 15:42:10.670: D/url(15267): uri = content://media/external/file/130512
03-07 15:42:10.670: D/MediaScannerConnection(15267): Disconnecting from MediaScanner
它似乎正在更新媒体扫描仪数据库,但无法影响图库应用更新其内容。 Playstore 中有一个名为 nomedia 的免费应用程序,它完全符合我在 phone 中的要求,但我的代码无法正常工作。
是否有任何方法或内置 class 可以做到这一点?或者有什么方法可以通过编程方式做到这一点?
抱歉我的英语不好。
感谢任何回答。
首先重命名文件夹。然后从媒体数据库中删除文件夹数据。然后重命名该文件夹。强制扫描仪扫描它...