Korzystam z interfejsu API aparatu w Androidzie i otrzymałem mój kod do pracy na kilku platformach, w tym galaktykach Samsung i HTC Desire. Do tej pory mam tylko problem z HTC Desire Z, który jest przerywany.Nie działa wywołanie autofokusa aparatu
w moim kodu Dzwonię następujące instrukcje
camera.startPreview();
camera.autoFocus(autoFocusCallback);
gdzie już utworzone klasy autoFocusCallback wymagane. Chciałbym jeszcze raz podkreślić, że ten kod działa na telefonach, w tym na tym, z czym mam problemy, więc nie analizuj kodu. :) Po wywołaniu oddzwaniania mój kod wykonuje następnie zdjęcie, ale ta część jest na razie nieistotna.
Czasowy problem polega na tym, że w przypadku pewnego losowego obrazu (dzieje się to na 20-100 razy), oddzwanianie nie występuje. Sprawdziłem z własnymi Log.i(), że jest to ostatnie polecenie wykonane (tj. Kod nie dostaje się do wywołania zwrotnego). Debugowanie pokazuje również, że nie zgłoszono żadnych błędów.
Wystarczy ustawić swój umysł na łatwość, moja zwrotna wyglądać tak
AutoFocusCallback autoFocusCallback = new AutoFocusCallback() {
@Override
public void onAutoFocus(boolean success, Camera camera) {
Log.i("tag","this ran");
...
...
}
};
Wyniki logcat dla pomyślnego przebiegu wyglądać tak
07-12 10:17:50.564: DEBUG/QualcommCameraHardware(1223): startPreview X
07-12 10:17:50.564: DEBUG/QualcommCameraHardware(1223): autoFocus E
07-12 10:17:50.564: DEBUG/QualcommCameraHardware(1223): autoFocus X
07-12 10:17:50.564: DEBUG/QualcommCameraHardware(1223): runAutoFocus E
07-12 10:17:50.564: DEBUG/QualcommCameraHardware(1223): af start (fd 49)
07-12 10:17:51.184: DEBUG/QualcommCameraHardware(1223): native_set_afmode: ctrlCmd.status == 0
07-12 10:17:51.184: DEBUG/QualcommCameraHardware(1223): af done: 1
07-12 10:17:51.184: DEBUG/QualcommCameraHardware(1223): runAutoFocus X
07-12 10:17:51.184: DEBUG/QualcommCameraHardware(1223): takePicture(479)
ale problematyczne prowadzony jest tak
07-12 10:17:52.194: DEBUG/QualcommCameraHardware(1223): startPreview X
07-12 10:17:52.194: DEBUG/QualcommCameraHardware(1223): autoFocus E
07-12 10:17:52.194: DEBUG/QualcommCameraHardware(1223): autoFocus X
07-12 10:17:52.194: DEBUG/QualcommCameraHardware(1223): runAutoFocus E
07-12 10:17:52.194: DEBUG/QualcommCameraHardware(1223): af start (fd 49)
, a następnie wisi.
Chciałbym wiedzieć, czy ktoś ma jakieś pomysły na temat tego problemu, czy też doświadczyłeś czegoś podobnego? Udało mi się znaleźć tylko jeden wątek w sieci z podobnymi problemami, tutaj jest http://groups.google.com/group/android-developers/browse_thread/thread/75ecb8db0ae02bdb
Doskonała odpowiedź !. Dzięki!! – superUser