私のアプリでは、ユーザーがカメラを使用して写真を撮ることができます。
いくつかのデバイス (Nexus S、Nexus One、HTC Magic、Galaxy S) でテストしました。アプリは最初の 3 台の電話では問題なく動作しましたが、Galaxy ではクラッシュしました。
これは私が書いたコードです -
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
ContentValues values = new ContentValues();
values.put(MediaStore.Images.Media.TITLE, "121.jpg");
values.put(MediaStore.Images.Media.DESCRIPTION,"Image capture by camera");
imageUri = getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
startActivityForResult(cameraIntent, 2);
そして、これは OnActivityResult 関数です -
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
else if (requestCode == 2)
{
sun=getRealPathFromURI(imageUri);
File f = new File(sun);
thePic.setImageBitmap(decodeFile(f));
}
}
}
resultCode が 0 (RESULT_OK ではない) として返され、アプリがクラッシュします。
ありがとう!