2016-10-15 1 views
1

Je veux démarrer un service, le service est essentiellement une vue vidéo sur windowmanager. Je veux commencer ce service de vidéoview même d'autres applications. ceci est mon code-intention-filtre, je ne sais pas où je me suis trompé.Intention de filtre pour le démarrage du service

<service android:name=".VideoWindow"> 
    <intent-filter> 
      <action android:name="android.intent.action.VIEW" /> 

      <category android:name="android.intent.category.DEFAULT" /> 
      <category android:name="android.intent.category.BROWSABLE" /> 

      <data android:mimeType="video/*" /> 
      <data android:mimeType="application/x-quicktimeplayer*" /> 
      <data android:mimeType="application/x-mpeg" /> 
      <data android:mimeType="application/vnd.dvd*" /> 
      <data android:mimeType="application/vnd.3gp*" /> 
      <data android:mimeType="application/3gpp*" /> 
      <data android:mimeType="application/vnd.rn-realmedia*" /> 
      <data android:mimeType="application/mp4*" /> 
      <data android:mimeType="application/mpeg*" /> 
      <data android:mimeType="application/sdp" /> 
      <data android:mimeType="application/vnd.wap.mms-message"/> 
    </intent-filter> 
</service> 
+0

alors vous voulez dire ** activité **, et non ** service **? – pskink

+0

Je veux lancer 'service' depuis une autre application. C'est pourquoi j'ai utilisé des intentions de recevoir des données d'autres applications à mon application. le service est vu sur 'windowmanager' flottant sur toutes les applications. – Naroju

+0

et comment les "autres applications" démarreraient-elles votre service? – pskink

Répondre

1

Je veux commencer ce service VideoView même d'autres applications

Sauf si vous êtes une écriture de ces autres applications, ou vous embaucher des gens pour écrire les autres applications, pas d'autres applications commencez votre service.

Je pense, de votre <intent-filter>, est que vous pensez que si une autre application appelle startActivity() sur une ACTION_VIEWIntent, que cela va commencer votre service. Ceci est une erreur. startActivity() démarre une activité. Il ne démarrera pas un service, quel que soit ce service.

+0

Merci pour les éclaircissements. Oui, j'ai pensé faire comme ça. Mais il n'y a aucun moyen que je puisse commencer le service? – Naroju

+0

@Naroju: Vous pouvez forcer les autres développeurs à changer d'application pour qu'ils appellent 'startService()'. Ou, vous pouvez changer votre application pour avoir une activité 'Theme.Translucent.NoTitleBar' avec votre' ', et déléguer le travail au service. – CommonsWare

+0

Ouais. C'est ce que j'ai fait. J'ai fait une activité transparente sans mise en page qui démarre le service et tue l'activité après le début du service. – Naroju