自分のアプリケーションから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)
);
}
デフォルトのカメラアプリケーションから私のアプリケーションから呼び出された写真をキャプチャして保存する前は、問題はありませんでした。
解決すべき問題が1つあると思いますが、アプリケーションから呼び出さずに写真をキャプチャするなどの情報を含む画像を保存するにはどうすればよいですか?
編集:
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)
前もって感謝します