8

Próbuję filtrować i obsłużyć zamiary przy pomocy akcji android.intent.action.SEND w jednym z moich Service s. Pisałem następujących w moim AndroidManifest.xml:Określanie filtru zamiaru wysyłania (udostępniania) dla usługi

<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> 

Teraz problemem jest to, że nie widzę mojej aplikacji na liście „poprzez akcję” opcji, jeśli, na przykład, starając się udostępnić strony sieci Web z przeglądarka lub kontakt z listy kontaktów. Jeśli jednak przeniesię filtry zamiany do głównego znacznika <activity> (zamiast <service>), moja nazwa aplikacji i ikona do pojawią się na liście opcji "udostępnij przez".

Co ja tu robię źle? Czy akcja SEND nie może być skierowana do usługi?

Odpowiedz

9

Próbuję filtrować i obsługiwać zamiary za pomocą android.intent.action.SEND w jednej z moich usług.

ACTION_SEND jest działaniem aktywizującym i dlatego nie może zostać odebrany przez usługi lub odbiorniki telewizyjne.

Teraz problemem jest to, że nie widzę mojej aplikacji na liście „poprzez akcję” opcji, jeśli, na przykład,

to dlatego, że nie jest to działalność.

Nie można skierować akcji WYSYŁA do usługi?

Rzeczy występujące w selektorze (np. Dla ACTION_SEND) muszą być czynnością. Jednak Twoja aktywność może komunikować się z usługą.

1

To powinno działać, ale:

Spróbuj z odbiornikiem transmisji najpierw dostać intencję i uruchomić usługę.

jeśli to nie działa:

Użyj obojętne aktywność bez układu. (Spraw, aby motyw był półprzezroczysty, a wywołanie zakończyło się zaraz po tym, jak sobie z nim poradzisz).

Również twój typ MIME oznacza, że ​​obsługujesz każdy typ pliku. czy to jest to, czego potrzebujesz? Myślę, że powinieneś uczynić go bardziej precyzyjnym w selekcji. otrzymasz negatywną opinię, jeśli ktoś spróbuje użyć go z typem, którego nie obsługujesz. moją sugestią jest testowanie typów i dodawanie ich pojedynczo, ponieważ jesteś pewien, że możesz sobie z nimi poradzić.