我正在尝试从我的应用程序中打开 android 自己的相机应用程序。它正在工作!但是当我想获取类似的信息时遇到了问题,
-图像 ID
-图像显示名称
-图像标题
-图像数据
-图片尺寸
- 拍摄日期
它应该存储在 MediaStore。我成功获取了图像的路径。之后,我必须获取上述信息,但是当我尝试获取信息时,应用程序会抛出异常。
部分我的代码是这样的:
while(cursor.moveToNext())
{
Date date = new Date(Long.valueOf(cursor.getString(5)));
SimpleDateFormat dateF = new SimpleDateFormat("yyyy/MM/dd");
SimpleDateFormat timeF = new SimpleDateFormat("HH:mm");
imageListInfo.add(
cursor.getString(0) + ";"
+ cursor.getString(1) + ";"
+ cursor.getString(2) + ";"
+ cursor.getString(3) + ";"
+ cursor.getString(4) + ";"
+ dateF.format(date) + ";"
+ timeF.format(date)
);
}
在我捕获并保存从我的应用程序调用的默认相机应用程序中的照片之前,没有任何问题。
我认为应该解决一个问题。我如何在不从我的应用程序调用的情况下保存图像及其信息,例如捕获照片?
编辑:
获取 id "cursor.getString(0)" 代码时会发生这种情况
android.database.StaleDataException: Attempting to access a closed CursorWindow.Most probable cause:
cursor is deactivated prior to calling this method.
at android.database.AbstractWindowedCursor.checkPosition(AbstractWindowedCursor.java:139)
at android.database.AbstractWindowedCursor.getString(AbstractWindowedCursor.java:50)
at android.database.CursorWrapper.getString(CursorWrapper.java:114)
at com.canberk.data.warehouse.BaseActivity.indexingForImageMediaStore(BaseActivity.java:313)
at com.canberk.data.warehouse.BaseActivity$BackGroundWorker.doInBackground(BaseActivity.java:109)
at com.canberk.data.warehouse.BaseActivity$BackGroundWorker.doInBackground(BaseActivity.java:1)
at android.os.AsyncTask$2.call(AsyncTask.java:264)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
at java.util.concurrent.FutureTask.run(FutureTask.java:137)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:208)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
at java.lang.Thread.run(Thread.java:856)
提前致谢