Intent MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERAでカメラを呼び出そうとしています。 ただし、StartActivityForResult
を使用してもonActivityResult
は呼び出されません。onActivityResultがMediaStore.INTENT_ACTION_STILL_IMAGE_CAMERAのために呼び出されていません
どうすればこの問題を解決できますか?
Intent MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERAでカメラを呼び出そうとしています。 ただし、StartActivityForResult
を使用してもonActivityResult
は呼び出されません。onActivityResultがMediaStore.INTENT_ACTION_STILL_IMAGE_CAMERAのために呼び出されていません
どうすればこの問題を解決できますか?
// get image count in media store befor start camera Start camera with chooser
public void startCameraActivity() {
Cursor cursor = loadCursor();
image_count_before = cursor.getCount();
cursor.close();
Intent cameraIntent = new Intent(
MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA);
cameraIntent = Intent.createChooser(cameraIntent, "Select Camera");
List<ResolveInfo> activities = getPackageManager()
.queryIntentActivities(cameraIntent, 0);
if (activities.size() > 0)
startActivityForResult(cameraIntent, CAPTURE_IMAGES_FROM_CAMERA);
else
Toast.makeText(this, "No Camera application", Toast.LENGTH_SHORT)
.show();
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
case CAPTURE_IMAGES_FROM_CAMERA:
exitingCamera();
break;
}
super.onActivityResult(requestCode, resultCode, data);
}
public Cursor loadCursor() {
final String[] columns = { MediaStore.Images.Media.DATA,
MediaStore.Images.Media._ID };
final String orderBy = MediaStore.Images.Media.DATE_ADDED;
return getContentResolver().query(
MediaStore.Images.Media.EXTERNAL_CONTENT_URI, columns, null,
null, orderBy);
}
public String[] getImagePaths(Cursor cursor, int startPosition) {
int size = cursor.getCount() - startPosition;
if (size <= 0)
return null;
String[] paths = new String[size];
int dataColumnIndex = cursor
.getColumnIndex(MediaStore.Images.Media.DATA);
for (int i = startPosition; i < cursor.getCount(); i++) {
cursor.moveToPosition(i);
paths[i - startPosition] = cursor.getString(dataColumnIndex);
}
return paths;
}
private void exitingCamera() {
Cursor cursor = loadCursor();
String[] paths = getImagePaths(cursor, image_count_before);
cursor.close();
new ProcessImage(paths).execute();
}
私はサイズ= 0 getImagePaths()関数で常に得ています。いくつかの写真をクリックしても、cursor.getCount()はstartPositionと同じままです。なぜこれが起こっているのか? –
詳細に –
をお願いし、より詳細に質問してください、あなたが望むものを意味し、何が起こるのです...など –
私は彼が写真を撮って欲しいwheatherユーザーが実行時に決めることができるようにstartActivityForResultでMediaStore.INTENT_ACTION_STILL_IMAGE_CAMERAを呼び出したいですまたはビデオを次にonActivityResult私は画像またはビデオを保存する – Majid