我正在为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)尝试其他方法。
请参见herehere

关于android - JellyBean在图片捕获方面的行为有所不同,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36418514/

10-10 17:12