在Android 4.1中打开图库

时间:2012-10-02 04:20:56

标签: android android-intent

我有一个应用程序,允许您从库中打开图片。当您将图库中的图片添加到应用程序时,它会记录URI,然后使用该URI再次打开图片。

这在Honeycomb和ICS上运作良好,但在Jellybean(4.1)上我总是得到第一张照片在画廊中打开的专辑。

我已经仔细检查过,当我调用图库时,URI实际上正在发生变化。

以下是打开图库的代码

startActivity(new Intent(Intent.ACTION_VIEW, uri));

这是URI ......

content://com.google.android.gallery3d.provider/picasa/item/5477659987595757282

同样,这是最初选择图片时从库中提供的URI,因此URI“应该”没问题,这只是一个Jellybean问题,我甚至在同一个设备上运行运行ICS,它曾经工作正常。现在它打开了正确的专辑,但始终显示第一张照片。

谢谢!

1 个答案:

答案 0 :(得分:0)

我不完全确定问题的具体内容,但我所知道的是你正在使用内部API ......你不应该这样做。 OEM(即三星,HTC等)未来可能会更改这些URI,导致旧应用程序在新设备上中断。更具体地说,您不能保证在发布新版本的Android时,您发布的URI将保持一致(因为它不是公共API的一部分)。

至少你应该使用PackageManager检查与给定uri相关联的包是否存在(如果没有,则提示用户使用toast警告他们该操作不能完成)。