我有一个应用程序,允许您从库中打开图片。当您将图库中的图片添加到应用程序时,它会记录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,它曾经工作正常。现在它打开了正确的专辑,但始终显示第一张照片。
谢谢!
答案 0 :(得分:0)
我不完全确定问题的具体内容,但我所知道的是你正在使用内部API ......你不应该这样做。 OEM(即三星,HTC等)未来可能会更改这些URI,导致旧应用程序在新设备上中断。更具体地说,您不能保证在发布新版本的Android时,您发布的URI将保持一致(因为它不是公共API的一部分)。
至少你应该使用PackageManager
检查与给定uri相关联的包是否存在(如果没有,则提示用户使用toast警告他们该操作不能完成)。