我正在为Jellybean,KitKat和Lollipop以及几种不同的设备开发一个Android应用程序。
在项目开始时,我将Jellybean API库与目标API“ anroid-18”(使用“三星银河笔记2014版”)一起使用。
几个月后,设备的操作系统开始升级到KitKat操作系统,因此我将库更改为版本号为4.4.2的“ android-19”。
我现在有一个名为Galaxy S tab 2的新设备。
我现在有三个版本和两个设备,我的默认API是4.4.2。
使用该应用程序捕获图片时发生了问题:
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 OS + Kitkat API =确定
棒棒糖操作系统+ KitKat API =确定
有问题的代码是
sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://"+ path)));
最佳答案
根据Wiki文章的引用,当发布新的KitKat和Lolipop操作系统并从Jellybean迁移到每种操作系统时,它们已更改为一种新的运行时环境。该代码仅在此新环境中兼容,您需要针对其他环境(如Jellybean)尝试其他方法。
请参见here和here
关于android - JellyBean在图片捕获方面的行为有所不同,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36418514/