Ich benutze Androids Standard Share Intent, um ein Bild mit anderen Apps zu teilen. Aber ich möchte eine Option wie Save to Gallery
hinzufügen, die dieses Bild direkt in der Galerie in Medien oder Bildern oder im Ordner meiner App speichert.Share Bild Absicht mit benutzerdefinierten Speichern in Galerie Option
Derzeit bin ich mit der einfachen Code-Bild zu teilen:
Intent shareIntent = new Intent();
shareIntent.setAction(Intent.ACTION_SEND);
shareIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(file));
shareIntent.setType("image/jpeg");
startActivity(Intent.createChooser(shareIntent, "Share to"));
Als ich WhatsApp Share-Taste aus Profilbild versuchte, gibt es eine Möglichkeit, "Save To Gallery
" Option. Jetzt habe ich erfahren, dass es nicht in Android vor-Build ist. Das ist die manuelle Aktion, die WhatsApp hinzugefügt hat und die ein Bild irgendwie in einen bestimmten Pfad speichert. Wenn Sie lange drücken, zeigt die Schaltfläche "Save to gallery
" an, dass diese Aktion der WhatsApp-App entspricht. Das bedeutet, dass WhatsApp eine Logik dafür geschrieben hat. Es ist der gleiche Standard ACTION_SEND
Absicht mit image/*
Mime-Typ mit einer zusätzlichen benutzerdefinierten Aktion "Save to Gallery
".
Das ist völlig in Ordnung. Ich möchte diese Art von Logik auch für meine App hinzufügen. Ich kann <intent-filter>
registrieren, das diese Handlung behandeln kann, aber es wird global jedes mögliches Bild von irgendeiner Anwendung annehmen, um in Galerie zu speichern.
Wie kann ich eine manuelle Aktion für meine Freigabe Intent oder <intent-filter>
Aktivität hinzufügen, die nur für meine App spezifisch sein kann (nur für meine App sichtbar) und dem Zweck dient, ein Bild in der Galerie zu speichern?
Können wir eine Methode aufrufen (um ein Bild herunterzuladen und in die Galerie zu speichern), wenn Sie auf Speichern klicken, statt eine Aktivität aufzurufen? –
Sie müssen eine Absicht hinzufügen. Sie können eine Methode mit einer Intent nicht direkt aufrufen. Aber Sie können versuchen, z.B. eine Broadcast-Empfänger-Absicht, anstatt eine Aktivität aufzurufen. – Christopher