JellyBean 在抓图时表现不同

Posted

技术标签:

【中文标题】JellyBean 在抓图时表现不同【英文标题】:JellyBean behaves differently with picture capturing 【发布时间】:2016-07-24 22:20:29 【问题描述】:

我正在为 Jellybean、KitKat 和 Lollipop 以及几种不同的设备开发一个 android 应用程序。

在项目开始时,我使用 Jellybean API 库和目标 API 'anroid-18' 使用 'Samsung 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 = 好的

棒棒糖操作系统 + KitKat API = 好的

有问题的代码是 sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://"+ path)));

【问题讨论】:

【参考方案1】:

在发布新的 KitKat 和 Lolipop 操作系统并从 Jellybean 迁移时,根据每个操作系统的 wiki 文章参考,它们更改为一种新的运行时环境。代码只在这个新环境中兼容,您需要为其他环境(如 Jellybean)尝试不同的方法。 见here和here

【讨论】:

以上是关于JellyBean 在抓图时表现不同的主要内容,如果未能解决你的问题,请参考以下文章

抓图小爬虫

为啥origin8.0做饼状图时,图像中的数据与原始数据不同

使用绘图子图时绘制自定义误差线

“printscreen”按键怎样使用?

为啥 Facebook 身份验证 SDK 在不同模式下的表现如此不同?

为啥这两个相同的表会根据浏览器宽度的不同而表现不同?