使用FileProvider或MediaStore共享图像

时间:2013-11-22 10:02:44

标签: mediastore android-fileprovider

我必须遵循问题。我想使用意图选择器将图像共享给尽可能多的应用程序。要实现这一点,我有两个选择:

  1. 将图像保存到MediaStore。但这意味着图像将显示在图库中,而无需用户授予它。

  2. 或使用FileProvider分享图片。但是,如果我使用FileProvider某些应用程序无效,则抛出以下异常:

  3.   

    java.lang.IllegalStateException:无法读取第0行,第0列   CursorWindow。确保之前正确初始化了Cursor   从中访问数据。               在android.database.CursorWindow.nativeGetLong(本机方法)               在android.database.CursorWindow.getLong(CursorWindow.java:507)               在android.database.AbstractWindowedCursor.getLong(AbstractWindowedCursor.java:75)               在android.database.CursorWrapper.getLong(CursorWrapper.java:106)               在ehz.a(PG:175)               在duj.a(PG:540)               在com.google.android.apps.photos.phone.SendContentActivity.onClick(PG:177)               在com.android.internal.app.AlertController $ ButtonHandler.handleMessage(AlertController.java:166)               在android.os.Handler.dispatchMessage(Handler.java:102)               在android.os.Looper.loop(Looper.java:137)               在android.app.ActivityThread.main(ActivityThread.java:4998)               at java.lang.reflect.Method.invokeNative(Native Method)               在java.lang.reflect.Method.invoke(Method.java:515)               在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:777)               在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:593)               在dalvik.system.NativeStart.main(本地方法)

    工作FileProvider对我来说非常合适,因为使用.nomedia选项我可以隐藏图库中的图像,并仍然可以将图像共享给所有其他应用。

    有没有人设法解决这个问题?是否有其他选项可以共享可以访问所有其他应用程序的图像?

    由于

1 个答案:

答案 0 :(得分:0)

保存了问题。而不是我使用Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)的所有选项,并使用.nomedia创建了子目录,并且它有效。