2011-07-20 9 views
5

Zrobiłem program, którego główną funkcją jest używanie API do robienia zdjęć i zapisywania ich na ścieżce, którą dałem.Dlaczego tak trudno jest robić zdjęcia normalnie na różnych telefonach z Androidem?

Ale rzeczy nie pojawiają się na różnych telefonach w porównaniu do tego, kiedy testowałem na emulatorze lub telefonie z ROM ROM pochodzącym z Google.

Teoretycznie. Jeśli podaję ścieżkę do intencji, zdjęcie nie powinno pojawić się w domyślnej galerii telefonu, ale w trybie MOTO Defy zdjęcia były przechowywane zarówno w mojej ścieżce, jak i domyślnym katalogu obrazów. Natomiast w przypadku Samsunga moja aplikacja cichnie działa po powrocie z kamery Intent. I tylko w niektórych telefonach mogę przywołać menu, naciskając przycisk menu w Aktywności kamery. Nawet niektóre z nich zapisują zdjęcia w rozmiarze ustawionym w menu ustawień aktywności kamery.

Myślę, że dzieje się tak dlatego, że producenci dostosowali pamięć ROM w swoich telefonach, więc działanie kamery działa inaczej.

Ktoś wie, jak uniknąć tej sytuacji? Czy istnieje inny sposób robienia zdjęć nie według intencji "android.media.action.IMAGE_CAPTURE"?

Poniżej znajduje się kod sposobu robienia zdjęć.

Intent intent = new Intent("android.media.action.IMAGE_CAPTURE"); 
    intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(getpath()+"_.jpg"))); 
    intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1); 
    startActivityForResult(intent, 0); 

Odpowiedz

1

sposób, który @balban Shah oferowanych pracował zachować inne wszystko jedno kiedy próbowałem.

W końcu odkryłem, że to dlatego, że różni producenci dostosowują swoje pliki ROM, w tym aplikację Aparat, więc najlepszym sposobem jest nie wywoływanie domyślnej aplikacji aparatu fotograficznego, zamiast tego możemy napisać działanie, które można wykorzystać, aby wykonać zdjęcie. Istnieje wiele przykładów tego w Internecie.

0

spróbuje użyć tego kodu ustawienie sama do przechwytywania zdjęć

Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(origImageFile)); 
startActivityForResult(cameraIntent, 0); 
Powiązane problemy