0

我有一个应用程序,可让您从图库中打开图片。当您将图库中的图片添加到应用程序时,它会记录 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 的同一设备上运行,并且它曾经工作正常。现在它会打开正确的相册,但总是显示第一张图片。

谢谢!

4

1 回答 1

0

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

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

于 2012-10-02T04:33:51.517 回答