Ich muss eine Absicht auf die Standardkameraanwendung übertragen, damit ein Foto aufgenommen, gespeichert und eine URI zurückgegeben wird. Gibt es eine Möglichkeit, dies zu tun?
android
android-camera
android-camera-intent
Alexander Oleynikov
quelle
quelle
Antworten:
quelle
FileProvider
in Android> M verwenden. Siehe hierVersuchen Sie Folgendes, das ich hier gefunden habe
quelle
Ich habe einige Stunden gebraucht, um das zum Laufen zu bringen. Der Code ist fast ein Copy-Paste von developer.android.com , mit einem kleinen Unterschied.
Fordern Sie diese Erlaubnis an
AndroidManifest.xml
:Auf dem
Activity
Starten dies durch die Definition:Dann feuere dies
Intent
in einemonClick
:Fügen Sie die folgende Unterstützungsmethode hinzu:
Dann erhalten Sie das Ergebnis:
Was es zum Laufen gebracht hat, ist das
MediaStore.Images.Media.getBitmap(this.getContentResolver(), Uri.parse(mCurrentPhotoPath))
, was sich vom Code von developer.android.com unterscheidet . Der ursprüngliche Code gab mir eineFileNotFoundException
.quelle
Versuchen Sie Folgendes, das ich gefunden habe. Hier ist ein Link
Wenn Ihre App auf M und höher abzielt und die Verwendung der nicht erteilten CAMERA-Berechtigung deklariert, führt der Versuch, diese Aktion zu verwenden, zu einer SecurityException.
EasyImage.openCamera(Activity activity, int type);
quelle
Ich habe einen ziemlich einfachen Weg gefunden, dies zu tun. Verwenden Sie eine Schaltfläche, um sie mit einem
on click
Listener zu öffnen und die Funktionopenc()
wie folgt zu starten :Mit der
uri
Standortzeichenfolge können Sie tun, was Sie wollen . Zum Beispiel sende ich es an einen Bildausschnitt, um das Bild zuzuschneiden.quelle
profile
sich?Versuchen Sie diesen Code
quelle