Niyet Android ACTİON_İMAGE_CAPTURE
Yerli kamera uygulaması kullanıcı yeni bir fotoğraf çekmek için izin kullanmak için çalışıyoruz. EXTRA_OUTPUT extra
ayrılıp küçük bit Eşlem görüntüsünü verir gayet güzel çalışıyor. 4 ** başlamadan önce niyet üzerine ancak, her şeye "Tamam" kamera uygulamasında düğmesine basın. vurmak için deneyin kadar çalışır "Ok" düğmesi hiçbir şey yapmaz. Kamera uygulaması açık kalır ve hiçbir şey kilitleniyor. Bunu iptal edebiliriz, ancak dosyayı hiç yazılmayacaktı. Biz tam olarak yapmak ACTION_IMAGE_CAPTURE
resim dosyası için alınan yazmaya çıkmak için ne yapmam lazım?
Edit: Bu MediaStore.ACTION_IMAGE_CAPTURE
niyet ile, sadece açıklığa kavuşturmak için yapılır
CEVAP
bu android bazı sürümlerinde well documented bug. bu, google android deneyimi oluşturur, görüntü yakalama belirtildiği gibi çalışmıyor. genel olarak kullandım ne yarar bir sınıfta böyle bir şey.
public boolean hasImageCaptureBug() {
// list of known devices that have the bug
ArrayList<String> devices = new ArrayList<String>();
devices.add("android-devphone1/dream_devphone/dream");
devices.add("generic/sdk/generic");
devices.add("vodafone/vfpioneer/sapphire");
devices.add("tmobile/kila/dream");
devices.add("verizon/voles/sholes");
devices.add("google_ion/google_ion/sapphire");
return devices.contains(android.os.Build.BRAND "/" android.os.Build.PRODUCT "/"
android.os.Build.DEVICE);
}
o zaman ben görüntü yakalamak başlattığınızda, hata olup olmadığını kontrol eden bir niyet oluşturun.
Intent i = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
if (hasImageCaptureBug()) {
i.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File("/sdcard/tmp")));
} else {
i.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
}
startActivityForResult(i, mRequestCode);
döndüğümde aktivite içinde, cihaza bağlı olarak farklı şeyler yapıyorum.
protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
switch (requestCode) {
case GlobalConstants.IMAGE_CAPTURE:
Uri u;
if (hasImageCaptureBug()) {
File fi = new File("/sdcard/tmp");
try {
u = Uri.parse(android.provider.MediaStore.Images.Media.insertImage(getContentResolver(), fi.getAbsolutePath(), null, null));
if (!fi.delete()) {
Log.i("logMarker", "Failed to delete " fi);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
} else {
u = intent.getData();
}
}
bu yeni kamera uygulaması yazmak zorunda kaydeder, ama bu kod da çok iyi sayılmaz. büyük sorunları vardır
hiç boy resimleri tam olsun bu hata ile cihazlar. olsun 512px resimleri geniş olan görüntü içerik eklenir sağlayıcı. bu olmadan cihazlarda böcek, her şey çalışıyor gibi belge, büyük normal bir resim olsun.
listeyi korumak zorundayız. olarak yazılı, cihazlar için mümkündür bir sürümü ile parladı olacak android (cyanogenmod's builds) söylemek bu hata düzeltildi. eğer böyle bir şey olursa, senin kod olacak crash. düzeltme, tüm kullanmaktır aygıt parmak izi.
android niyet bekleyen bildirim sorunu...
Niyet Android kamera...
-App fatura, Sınıftır Google: Servis N...
Niyet filtre belirli bir dosya uzantıs...
Android Kamera : veri niyet döndürür n...