我正在为 Jellybean、KitKat 和 Lollipop 以及几种不同的设备开发一个 Android 应用程序。
在项目开始时,我使用 Jellybean API 库,目标 API 为“anroid-18”,使用“三星 Galaxy Note 2014 版”。几个月后,设备的操作系统开始升级到 KitKat 操作系统,所以我将库更改为“android-19”,版本号为 4.4.2。
我现在有一个名为 Galaxy S tab 2 的新设备。
我现在有三个版本和两个设备,我的默认 API 是 4.4.2。
使用app拍照时出现的问题:
if (Build.VERSION.SDK_INT >= AlopexBuild.VERSION_SUPPORT.KITKAT) {
Intent mediaScanIntent
= new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
Uri contentUri = Uri.parse("file://"+ path);
mediaScanIntent.setData(contentUri);
sendBroadcast(mediaScanIntent);
} else {
sendBroadcast(
new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://"+ path)));
}
以下代码在 Jellybean 中没有问题:
Intent mediaScanIntent
= new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
Uri contentUri = Uri.parse("file://"+ path);
mediaScanIntent.setData(contentUri);
sendBroadcast(mediaScanIntent);
为什么会这样?
Jellybean OS + Kitkat API = 失败
Kitkat 操作系统 + Kitkat API = 好的
Lollipop OS + KitKat API = OK
有问题的代码是
sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://"+ path)));