8

Ich versuche Intents mit android.intent.action.SEND Aktionen in einem meiner Service s zu filtern und zu verarbeiten. Ich schrieb in meinem AndroidManifest.xml:Angeben eines SEND (Sharing) Intent-Filters für einen Service

<service 
    android:name=".app.ScreamerService" 
    android:label="@string/app_name" > 
    <intent-filter> 
     <action android:name="android.intent.action.SEND"/> 
     <category android:name="android.intent.category.DEFAULT"/> 
     <data android:mimeType="*/*"/> 
    </intent-filter>                  
</service> 

Nun, das Problem ist, dass ich meine Anwendung in der Liste der „Aktie über“ Optionen nicht sehen, wenn zum Beispiel versucht, eine Webseite zu teilen von der Browser oder ein Kontakt aus der Kontaktliste. Wenn ich jedoch die Intent-Filter auf das Haupttagsfeld <activity> (anstelle von <service>) verschiebe, erscheinen mein Anwendungsname und das Symbol Do in der Liste der Optionen "Freigabe über".

Was mache ich hier falsch? Kann eine SEND Aktion nicht an einen Dienst gerichtet werden?

Antwort

9

Ich versuche Intents mit android.intent.action.SEND Aktionen in einem meiner Dienste zu filtern und zu handhaben.

ACTION_SEND ist eine Aktivitätsaktion und kann daher nicht von Diensten oder Rundfunkempfängern empfangen werden.

Nun ist das Problem, dass ich nicht sehen, meine Anwendung in der Liste der „Aktie über“ Optionen, wenn zum Beispiel

Das ist, weil es keine Aktivität.

Kann eine SEND-Aktion nicht an einen Dienst gerichtet werden?

Dinge, die in einem Chooser erscheinen (z. B.. Für ACTION_SEND) müssen Aktivitäten sein. Ihre Aktivität ist jedoch willkommen, mit einem Dienst zu kommunizieren.

1

Dies sollte aber funktionieren:

mit einem Rundfunkempfänger Versuchen Sie zuerst die Absicht, zu erhalten und Ihren Service zu starten.

wenn das nicht funktioniert:

eine Dummy-Aktivität ohne Layout verwenden. (Machen Sie das Thema durchscheinend und rufen Sie das Ziel auf, nachdem Sie mit der Absicht fertig sind).

Auch Ihr Mime-Typ bedeutet, dass Sie jeden einzelnen Dateityp behandeln. ist das was du brauchst? Ich denke, du solltest es genauer in der Auswahl machen. Sie erhalten ein negatives Feedback, wenn jemand versucht, es mit einem Typ zu verwenden, den Sie nicht unterstützen. Mein Vorschlag ist, Typen zu testen und sie einzeln hinzuzufügen, da Sie sicher sind, dass Sie mit ihnen umgehen können.

Verwandte Themen