2011-03-08 75 views
1

我正在通过创建一个应用程序来简单地创建主屏幕快捷方式来读取SD卡上的文件,从而允许android使用其默认应用程序打开它们,从而练习我的Android技能。ANDROID:Image Shortcut导致图库重建相册

一切都很好,工作,但是当我创建一个快捷方式到的图像会发生以下情况

  1. 画廊展示了几秒钟的
  2. 吐司消失“加载新的相册和照片”吐司秒
  3. 吐司重新出现几秒
  4. 照片终于显示。

我也应该注意到,通过另一个文件管理器打开文件时,库不显示任何这些祝酒词的,但它也确实表现出低分辨率缓冲的图像外观半秒,显示高分辨率的一个前。还要注意,这种行为在多个文件\类型中很明显(无论如何都试过jpegs和png)。

这是我的快捷方式本身的意图(路径显然是路径+文件名的字符串):

Intent shortcutIntent = new Intent(); 
shortcutIntent.setAction(android.content.Intent.ACTION_VIEW); 
File file = new File(path); 
Uri uri = Uri.fromFile(file); 
MimeTypeMap map = MimeTypeMap.getSingleton(); 
String mime = map.getMimeTypeFromExtension(MimeTypeMap.getFileExtensionFromUrl(uri.toString().toLowerCase())); 
shortcutIntent.setDataAndType(uri, mime); 

在打开的快捷logcat的告诉我:

03-08 19:34:16.431: INFO/ActivityManager(167): Starting: Intent { act=android.intent.action.VIEW dat=file:///sdcard/download/TIMETABLE.png typ=image/png flg=0x14000000 cmp=com.cooliris.media/.Gallery bnds=[15,159][144,269] } from pid 262 
03-08 19:34:16.480: INFO/Gallery(1440): onDestroy 
03-08 19:34:16.511: INFO/Gallery(1440): onCreate 
03-08 19:34:16.621: DEBUG/CacheService(1440): Refreshing Cache for all items 
03-08 19:34:16.621: INFO/CacheService(1440): Refreshing cache. 
03-08 19:34:16.721: INFO/CacheService(1440): Building albums. 
03-08 19:34:16.791: INFO/RenderView(1440): First Draw 
03-08 19:34:16.831: INFO/CacheService(1440): Done building albums. 
03-08 19:34:16.831: INFO/CacheService(1440): Building items. 
03-08 19:34:16.971: INFO/ActivityManager(167): Displayed com.cooliris.media/.Gallery: +498ms 
03-08 19:34:17.001: INFO/CacheService(1440): Done building items. 
03-08 19:34:17.011: INFO/MediaFeed(1440): Replacing media set 310386146 
03-08 19:34:17.011: INFO/MediaFeed(1440): Replacing media set 1506676782 
03-08 19:34:17.011: INFO/MediaFeed(1440): Replacing media set -1928128949 
03-08 19:34:17.171: DEBUG/dalvikvm(167): GC_EXPLICIT freed 690K, 41% free 5902K/9991K, external 1612K/2124K, paused 109ms 
03-08 19:34:17.361: DEBUG/dalvikvm(1083): GC_EXPLICIT freed 175K, 52% free 2678K/5575K, external 0K/0K, paused 35ms 
03-08 19:34:18.521: DEBUG/AlarmManagerService(167): Kernel timezone updated to -660 minutes west of GMT 
03-08 19:34:18.531: DEBUG/SystemClock(275): Setting time of day to sec=1299573259 
03-08 19:34:26.127: ERROR/(1440): Not JPEG: /sdcard/download/TIMETABLE.png 
03-08 19:34:26.138: DEBUG/CacheService(1440): Refreshing Cache for all items 
03-08 19:34:26.138: INFO/CacheService(1440): Refreshing cache. 
03-08 19:34:26.197: INFO/CacheService(1440): Building albums. 
03-08 19:34:26.258: INFO/CacheService(1440): Done building albums. 
03-08 19:34:26.258: INFO/CacheService(1440): Building items. 
03-08 19:34:26.348: INFO/CacheService(1440): Done building items. 
03-08 19:34:26.348: DEBUG/CacheService(1440): No items found for album 
03-08 19:34:26.348: INFO/GridLayer(1440): Slot changing from -1 to -1 
03-08 19:34:26.358: INFO/RenderView(1440): Texture creation fail, glError 1281 
03-08 19:34:26.388: WARN/MediaProvider(1083): original media doesn't exist or it's canceled. 
03-08 19:34:26.388: INFO/CacheService(1440): Built thumbnail and screennail for 0 in 33 

这是相同的快捷方式到JPEG除了没有

ERROR/(1440): Not JPEG: /sdcard/download/TIMETABLE.png 

线。奇怪的是,这个错误仍然出现,但画廊可以并将打开PNG。

其他一切似乎都很好(即pdf,音频,视频,文件等等)。

反正任何帮助将是非常有益的,

干杯, 山姆

回答

2

问题解决了!

备查,需要指向 MNT/SD卡/ ... 不 /SD卡/ ...

很奇怪的是,它仍然有效,但画廊迷糊。

+0

在我的情况下,这个问题没有得到解决,但在画廊应用程序提供了一个“停止意外”强制关闭屏幕。我正在使用“file:/// mnt/sdcard ...”,这是它适用于我的LG Optimus手机的唯一方式。在模拟器上,无论我尝试什么,它都会显示所有可用图片的图库应用程序。我讨厌这种分裂.. – kellogs 2011-09-26 22:42:15