在Android 4.1中打开图库

在Android 4.1中打开图库,android,android-intent,Android,Android Intent,我有一个应用程序,可以让你从图库中打开图片。当您将图片库中的图片添加到应用程序时,它会记录URI,然后在需要时使用该URI再次打开图片 这在蜂巢和ICS上运行得很好,但在Jellybean(4.1)上,我总是在画廊中打开的相册中看到第一张照片 当我打电话到画廊时,我已经仔细检查了URI是否在改变 这是打开库的代码 startActivity(new Intent(Intent.ACTION_VIEW, uri)); 这是URI content://com.google.android.gall

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

这在蜂巢和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的同一台设备上运行,它过去工作正常。现在它打开了正确的相册,但始终显示第一张图片


谢谢

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

至少,您应该使用
PackageManager
检查与给定uri关联的包是否存在(如果不存在,则用toast提示用户操作无法完成)