查看Android 10中引入的存储访问更改这里,位置信息现在默认被打上了黑色标记。
Google要求我们在“MediaStore”对象上调用setRequireOriginal()
,并将媒体的uri作为参数。当你逐个获取媒体文件时,这是有效的,但是当我们查询整个相册的ContentResolver时呢?
可以参考这个示例:
String[] projection = {
MediaStore.Files.FileColumns._ID,
MediaStore.Files.FileColumns.DATA,
MediaStore.Files.FileColumns.MEDIA_TYPE,
MediaStore.Images.Media.DATE_TAKEN,
MediaStore.Images.Media.WIDTH,
MediaStore.Images.Media.HEIGHT,
MediaStore.Images.Media.LATITUDE, // <----- THIS
MediaStore.Images.Media.LONGITUDE, // <----- THIS
MediaStore.Images.Media.MIME_TYPE,
};
String selection = MediaStore.Files.FileColumns.MEDIA_TYPE + "="
+ MediaStore.Files.FileColumns.MEDIA_TYPE_IMAGE;
Uri queryUri = MediaStore.Files.getContentUri("external");
Cursor cursor = null;
MediaStore a ;
try {
cursor = context.getContentResolver().query(queryUri, projection, selection,
null, MediaStore.Images.Media.DATE_TAKEN + " DESC");
}
catch (NullPointerException ex){
}
在开始使用Q时,纬度和经度始终设置为0。假设在清单文件中添加了ACCESS_MEDIA_LOCATION
权限,是否有一种方法来获取一批媒体的位置数据?