【发布时间】:2013-05-16 16:18:06
【问题描述】:
我正在使用相机 Intent 在我的应用中启动相机,但一旦 Intent 被触发,onActivityResult 就会被触发,我什至还没有拍照。
当我拍照时,选择它并返回我的活动,onActivityResult 根本不会被调用
这是我启动相机的方法
PackageManager pm = getPackageManager();
if (pm.hasSystemFeature(PackageManager.FEATURE_CAMERA)) {
Intent camera = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
File tempDir = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES),"Mobile Map");
if (!tempDir.exists()) {
if (!tempDir.mkdir()) {
Toast.makeText(this,
"Please check SD card! Image shot is impossible!",
Toast.LENGTH_SHORT).show();
}
}
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss",Locale.US).format(new Date());
File mediaFile = new File(tempDir.getPath() + File.separator+ "IMG_" + timeStamp + ".jpg");
photoUri = Uri.fromFile(mediaFile);
camera.putExtra(MediaStore.EXTRA_OUTPUT, photoUri);
startActivityForResult(camera, CAMERA_REQUEST);
} else {
Toast.makeText(this,"This device does not have a rear facing camera",Toast.LENGTH_SHORT).show();
}
为什么 onActivityResult 仅在相机 Intent 启动后才被调用?
【问题讨论】:
-
您说:“一旦(相机)意图被触发,onActivityResult 就会被触发”,但是“当我拍照时...... onActivityResult 根本不会被调用”。是哪一个?
-
@Neoh 两者,它在发送意图时被调用,但是当我真正希望它被调用时,就像我拍照时它不会被调用
-
调用
onActivityResult()时,resultCode参数的值是多少? -
@DavidWasser resultCode 是
0并且 requestCode 是我在启动相机的意图中给出的代码,因此它来自我的相机意图
标签: android android-intent android-camera-intent