Ich habe eine Klassenvariable photoPath
, die auf Null initialisiert wird.Android Camera API - Wie wird benachrichtigt, wenn onPictureTaken() ausgeführt wurde und zurückgegeben wurde?
private static string photoPath = null;
dann innerhalb des Körpers des onPictureTaken
wird diese Variable einen bestimmten String-Wert zugewiesen.
final PictureCallback pictureCallback = new PictureCallback() {
@Override
public void onPictureTaken(byte[] data, Camera camera) {
Log.i(TAG, "onPictureTaken() of Camera.PictureCallback called.");// check
...
photoPath = aValidPathString;
...
}
}
Dann in dem Klick-Listener auf eine Schaltfläche, habe ich die Camera.takePicture()
Methode aufgerufen. Danach habe ich den Wert photoPath
ausgeloggt. Dieser Wert von photoPath
ergibt sich als null
im Ausgang; und onPictureTaken() of Camera.PictureCallback called.
wird nie in der Ausgabe gedruckt. Dies bedeutet, dass onPictureTaken() NICHT aufgerufen wird, wenn ich den Wert photoPath
abmelde.
Deshalb möchte ich wissen, wann onPictureTaken()
zurückgekehrt ist, so dass ich sicher sein kann, dass onPictureTaken()
ausgeführt wurde, und ich den Wert von photoPath
an diesem Punkt wieder auslogge. Wie mache ich das?
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.i(TAG, "onClick() of View.OnClickListener called.");// check
camera.takePicture(null, null, pictureCallback);
/*while(photoPath==null) {
Log.i(TAG, "PHOTO_NAME is null at the moment.");/*
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
Log.i(TAG, "Waiting for half a second.");
}
}, 500);*
}*/
Log.i(TAG, photoPath);// check
}
}
'Takepicture()' ist asynchron. Die Arbeit beginnt nicht erst mit dem Aufnehmen des Bildes, bevor "onClick()" zurückkehrt, AFAIK. Verschieben Sie Ihren Code, der den Pfad zu "onPictureTaken()" benötigt. – CommonsWare
@CommonsWare Danke, das mache ich. Aber hast du meine Frage abgelehnt? Wenn ja, kannst du mir bitte den Grund nennen? – Solace
"Aber hast du meine Frage abgelehnt?" -- Nein, habe ich nicht. – CommonsWare