Dies ist meine implizite Absicht Bildbearbeitung Anwendungen auf dem Gerät aufzurufen:android implizite Absicht bearbeiten fehlgeschlagen Bild laden
startActivity(new Intent(Intent.ACTION_EDIT).setDataAndType(myUri,
getMimeType(myUri)).setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION |
Intent.FLAG_GRANT_WRITE_URI_PERMISSION));
Und das ist, wie ich getMimeType:
public String getMimeType(Uri uri) {
String mimeType = null;
if (uri.getScheme().equals(ContentResolver.SCHEME_CONTENT)) {
ContentResolver cr = getContentResolver();
mimeType = cr.getType(uri);
} else {
String fileExtension = MimeTypeMap.getFileExtensionFromUrl(uri
.toString());
mimeType = MimeTypeMap.getSingleton().getMimeTypeFromExtension(
fileExtension.toLowerCase());
}
return mimeType;
}
Für einige Anwendungen es Abstürze zum Laden:
Auf der App wird nur eine unsichtbare Seite geladen und die Interaktion mit meiner App deaktiviert.
Auf der App AirBrush
lädt es die App aber stürzt mit dieser Meldung ab "Bild konnte nicht geladen werden".
Bezieht es sich auf minimale SDK-Version als meine ist 16? Ich habe dies auf mindestens SDK-Version von 9 zu und keine Änderung im Ergebnis getestet.
Gibt es noch etwas, das ich hinzufügen sollte, um mit allen Apps zu arbeiten?
Ich habe putExtra auch versucht, und es hilft nicht:
.putExtra(Intent.ACTION_EDIT, myUri);
Ich habe einige Galerie apps auf meinem Gerät und alle von ihnen starten Sketch_Camera
und AirBrush
ohne Probleme.
Was passiert hier? Ich bin so verwirrt nach zwei Tagen des Kampfes mit diesem Phänomen.
Was ist der Wert von 'myUri'?Warum verwenden Sie 'image/*' anstelle des eigentlichen MIME-Typs (wie es * Ihr * Inhalt ist, also * wissen Sie * was der MIME-Typ ist)? – CommonsWare
myUri ist ein URI aus einer Image-Datei >> 'Uri.fromFile (myFile)' und warum verwende ich 'image/*' anstelle des tatsächlichen MIME-Typs? Ich habe den Code vom Stapel abgeholt. Jetzt habe ich die Frage basierend auf Ihrem Leitfaden bearbeitet. Aber trotzdem bekomme ich das gleiche Ergebnis. – Eftekhari
"myUri ist ein URI aus einer Bilddatei" - und wo ist diese Datei? 'Intent.FLAG_GRANT_READ_URI_PERMISSION' und' Intent.FLAG_GRANT_WRITE_URI_PERMISSION' sind in diesem Fall nutzlos, da sie nicht zu 'file'' Uri' Werten gehören. – CommonsWare