问题描述
为什么MediaScannerConnection.scanFile(this,new String[] { uri_path_or_subfolder },null,... )
在AndroidQ,R(SDK29,30)中不是deprecated
?
我用
制作了一张存储在Pictures/subfolderABC
中的小照片
final Uri contentUri = MediaStore.Images.Media.getContentUri("external");
Uri uri = resolver.insert(contentUri,contentValues);
//Then ... Do some works on the uri with bitmap,ParcelFileDescriptor and FileOutputStream
通过检查uri.toString();
System.out.println(uri.toString());
调试对话显示:
content://media/external/images/media/85
在Android SDK
MediaScannerConnection.scanFile(this,new String[] { file.toString()},new MediaScannerConnection.OnScanCompletedListener() {
public void onScanCompleted(String path,Uri uri_local) {
Log.i("ExternalStorage","Scanned " + path + ":");
Log.i("ExternalStorage","-> uri=" + uri_local);
}
});
所以我尝试以类似的方式在Android Q和R(SDK 29,30)中这样做...
String testingString;
switch (testingCaseNum){
case 1: testingString = contentUri.toString(); break; //testing1
case 2: testingString = uri.toString(); break; //testing2
case 3: testingString = "content://media/external/images/media"; break; //testing3,should be same as
case 4: testingString = relativePath; break; //testing4 //relativePath = "Pictures/subfolderABC"
case 5: testingString = "Pictures"; break; //testing5
default:testingString = contentUri.toString(); break;
}
String testingString = contentUri.toString(); //testing
MediaScannerConnection.scanFile(this,new String[] {tesingString},new MediaScannerConnection.OnScanCompletedListener() {
public void onScanCompleted(String path,Uri uri_local) {
Log.i("ExternalStorage","Scanned " + path + ":");
Log.i("ExternalStorage","-> uri=" + uri_local);
}
});
调试对话框显示:
D/MediaScannerConnection: Scanned xxxx to null
I/ExternalStorage: Scanned xxxx:
I/ExternalStorage: -> uri=null
我花了大约12到18个小时来找出为什么模拟器返回一个空uri的问题,但是在上面的代码中,该图像具有一个生成id的uri!我以为我输入了错误的String来告诉AndroidQ扫描位置。但是在1个小时之前,我发现一位开发人员总结了Android Q在2019年的一些问题。他说,如果您输入uri,则输入的所有String路径都将返回null!
2020年10月,Android Studio没有提供任何提示或消息告诉我MediaScannerConnection.scanFile
在AndroidQ中不起作用或不建议使用?这浪费了我的时间,Android Studio真的知道关于scanFile的问题吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)