Ich versuche, eine einfache Anwendung zu machen, dass die Handy-Kamera verwendet, so folgte ich diese tutorial Im Grunde habe ich eine fab, die die Kamera auf Klick startet und das ist das Ergebnis:startActivityForResult nicht auslösenden onActivityResult
es startet die Kamera, wie es sollte ...
wenn ich die Kamera schließen druckt es „REQUEST_PHOTO“ und „Übung beendet“, aber wenn ich ein Foto und drücken sie dann die richtige Taste zu akzeptieren, es passiert nichts . Die Schaltfläche funktioniert nicht und die Methode onActivityResult wird nicht aufgerufen.
Hier können Sie den entsprechenden Teil des Codes mit den Logs im onActivityResult Methode siehe:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
...
if(hasCamera()) {
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
launchCamera();
}
});
}
}
...
private void launchCamera() {
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
...
if (takePictureIntent.resolveActivity(getPackageManager()) != null) {
...
photoURI = FileProvider.getUriForFile(...);
takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, photoURI);
startActivityForResult(takePictureIntent, REQUEST_TAKE_PHOTO);
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case REQUEST_TAKE_PHOTO:
Log.d("DEBUG", "REQUEST_PHOTO");
if (resultCode == RESULT_OK) {
Log.d("DEBUG", "REQUEST_PHOTO RESULT_OK");
}
break;
}
Log.d("DEBUG", "ACTIVITY FINISHED");
}
}
Nicht nur verstehe ich nicht, warum die Methode nicht aufgerufen wird und die Annahmetaste „blockiert "aber ich verstehe auch nicht, warum die Methode nur aufgerufen wird, wenn der Exit-Button gedrückt wird.
Irgendeine Idee?
Danke!
Welche Version von Gerät, das Sie diesen Code testen. Hoffe, du hast die notwendige Erlaubnis als Marshmallow-Version, da gibt es einige gefährliche Erlaubnis, die vom Benutzer gewährt werden muss. –
Haben Sie die Datei erstellt, bevor Sie den URI an die Kameraanwendung übergeben haben? – makovkastar
@makovkastar Ich habe die Datei nur so erstellt, wie die [tutorial] (https://developer.android.com/training/camera/photobasics.html) sagte zu tun (createImageFile() -Funktion) –