Intents aracılığıyla bir kamera kullanan basit bir Android uygulamasında ayakta durmaya çalışıyorum. Kod Android documentation here dan hemen hemen düz, ama benim için çalışmıyor.Android camera Intensive RESULT_OK durumunda dönmüyor
Kamera uygulaması, startActivityForResult() çağrısından sonra beklendiği gibi açılır, ancak fotoğraf çektikten sonra hiçbir zaman geri dönmez (?!). Özellikle, bir fotoğraf çektikten ve kabul simgesini (Galaxy Nexus üzerinde onay işareti) seçtikten sonra geri dönmez. Ancak iptal simgesini (aynı telefondaki 'X') seçtikten sonra geri dönüyor.
İşte kod (not, bir Fragment, değil Etkinlik gelen çalışıyorum):
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.my_layout, container, false);
final Button btnCamera = (Button) view.findViewById(R.id.cameraid);
View.OnClickListener handler = new View.OnClickListener() {
public void onClick(View v) {
if (v == btnCamera) {
Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
// create a file to save the image
File imagesFolder = new File(Environment.getExternalStorageDirectory(), "MyImages");
imagesFolder.mkdirs();
File image = new File(imagesFolder, "image_001.jpg");
Uri uriSavedImage = Uri.fromFile(image);
// start the image capture Intent
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, uriSavedImage);
startActivityForResult(intent, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE);
}
}
}
btnCamera.setOnClickListener(handler);
}
ve
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE) {
if (resultCode == Activity.RESULT_OK) {
// Image captured and saved to fileUri specified in the Intent
Toast.makeText(getActivity(), "Image saved to:\n" +
data.getData(), Toast.LENGTH_LONG).show();
}
else if (resultCode == Activity.RESULT_CANCELED) {
// User cancelled the image capture
} else {
// Image capture failed, advise user
}
}
Ne bu işi yapmak için değiştirmek gerekiyor? Teşekkürler. Ben yanlışlıkla uygulama harici kamera uygulaması dayanıyorsa bu satırlar gerekli değildir sanıyordum
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.CAMERA"/>
: Ben apaçık satırları eklendiğinde
Teşekkürler Dylan, - yapacak. – gcl1