Ich möchte die Standardkamera starten, möchte aber, dass sie so funktioniert, wie sie vom Launcher gestartet wurde (dh das resultierende Bild sollte von der Kamera-App in der Galerie des Benutzers gespeichert werden), anstatt zu meiner App zurückzukehren). Wenn ich Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
verwende, verwendet die Kamera-App die "OK? Retry?" - Benutzeroberfläche und speichert das Bild nicht. Ich würde lieber keine "direkte" com.android.camera
Absicht verwenden, da viele Geräte benutzerdefinierte Kamera-Apps verwenden. Ich habe gesehen, dass die stock gallery3d-App einen Alias verwendet, der com.android.camera/.Camera
implementiert, aber ich bin mir nicht sicher, dass jede vorinstallierte Hersteller-Kamera-App das tut.Starten der Standardkamera-App (keine Rückgabe)
8
A
Antwort
10
Ich habe jetzt es wie folgt umgesetzt:
Intent i = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
try {
PackageManager pm = mContext.getPackageManager();
final ResolveInfo mInfo = pm.resolveActivity(i, 0);
Intent intent = new Intent();
intent.setComponent(new ComponentName(mInfo.activityInfo.packageName, mInfo.activityInfo.name));
intent.setAction(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
startActivity(intent);
} catch (Exception e){ Log.i(TAG, "Unable to launch camera: " + e); }
5
Dieser Code wird den Trick:
Intent intent = new Intent(MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA);
context.startActivity(intent);
+0
Diese Absicht scheint MediaStore.ACTION_IMAGE_CAPTURE überlegen zu sein, da mit dem vorherigen Programm bestimmte Kamera-Apps in einem Modus geöffnet werden, der ausschließlich für Fotos gilt und es dem Benutzer nicht ermöglicht, zu Video zu wechseln. MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA scheint nicht unter denselben Einschränkungen zu leiden. –
Verwandte Themen
- 1. Der Compiler gibt keine Warnung bei der Rückgabe lokaler Zeiger
- 2. Kann keine Funkenschale starten
- 3. .contentequals wirft keine Ausnahme bei falscher Rückgabe
- 4. Android kann keine Aktivität starten
- 5. Scala Json (Json4s) Parse-Rückgabe Keine
- 6. Keine Rückgabe oder ein Tupel und Auspacken
- 7. Rückgabe anhand der Vorlage
- 8. Rückgabe der Dialogfeldinformationen
- 9. Rückgabe der Eigenschaft undefined
- 10. Rückgabe der Datenbankwerte an Array?
- 11. Starten fehlgeschlagen keine Binärdateien - GCC mit Eclipse
- 12. Fehler: kann keine neuen Thread starten
- 13. Rückgabe HttpStatusCode in der Antwort
- 14. Rückgabe Anzahl der aktualisierten Datensätze
- 15. Rückgabe Zeichenfolge aus der Datenbank
- 16. instantiateViewControllerWithIdentifier Rückgabe
- 17. Benachrichtigung klicken, aber keine neue Aktivität starten?
- 18. Auswahl der Tabellenansichtszeile bei der Rückgabe abwählen
- 19. Kontext der Rückgabe der Karte ändern?
- 20. Die Unterschiede zwischen der Rückgabe eines Objekts und der Rückgabe der Antwort?
- 21. ANT erhält keine Exit-Code-Rückgabe von einem Python-Skript
- 22. MySQL: Irgendwas stimmt nicht mit Volltextsuche - Rückgabe keine Ergebnisse
- 23. Facebook Graph API - Object Insights Rückgabe Keine Daten
- 24. Android Marshmallow 6.0.1 Bluetooth Scan Rückgabe Keine Ergebnisse
- 25. Mercurial Rückgabe "keine Änderungen gefunden", während es Änderungen gibt!
- 26. Starten Sie die Android-Anwendung ohne Hauptaktivität und starten Sie den Dienst beim Starten der Anwendung
- 27. Rückgabe * dieses
- 28. Rückgabe der richtigen Werte mit der CONCAT-Funktion
- 29. SQL Select - Rückgabe als
- 30. Segfault bei der Rückgabe des privaten Mitglieds
Hinweis, können Sie 'Intent.ACTION_MAIN' auslagern und die Aktion ersetzen mit' MediaStore.ACTION_IMAGE_CAPTURE ", damit die App im Fotomodus gestartet wird, oder" MediaStore.ACTION_VIDEO_CAPTURE ", um die App im Videomodus zu starten. – pents90
Wenn Sie dies von einem Hintergrunddienst tun, müssen Sie intention.setFlags hinzufügen (Intent.FLAG_ACTIVITY_NEW_TASK); –
Diese Antwort funktioniert nicht! Es öffnet Kontakte, Youtube und andere irrelevante Apps. – NecipAllef