我正在尝试在我的Android设备上获取本地文件的内容类型。我的代码是
File file = new File(uploadPath.replace("file://",""));
Uri uri = Uri.fromFile(file);
ContentResolver contentResolver = getApplicationContext().getContentResolver();
String type = contentResolver.getType(uri);
我的上传路径为file:///storage/emulated/0/DCIM/Camera/20141016_181148.jpg
。但是,我总是将type
视为空。这是为什么??
答案 0 :(得分:2)
如果uri方案不是content://
,内容解析器将返回null答案 1 :(得分:0)
获取文件类型,请查看:How to determine MIME type of file in android?
可能的空值的原因:
What causes Android's ContentResolver.query() to return null?
从我可以看到的uri可能是不正确的。
答案 2 :(得分:0)
如果您使用的是最新的编码标准,则在如何管理存储以及我们如何访问存储方面有很多changes。要回答您的问题,您必须将Uri uri = Uri.fromFile(file);
替换为以下代码:
Java:
Uri uri = FileProvider.getUriForFile(
context,
context.getPackageName() + ".provider",
file
);
科特琳:
val uri = FileProvider.getUriForFile(
context,
context.packageName + ".provider",
file
)
别忘了查看官方文档
我希望这会有所帮助!