2016-10-15 2 views
1

Ich möchte einen Dienst starten, der Dienst ist im Grunde eine Videoansicht auf Windowmanager. Ich möchte diesen Videoansicht-Dienst auch von anderen Anwendungen aus starten. Das ist mein Code Intent-Filter, weiß nicht, wo ich falsch gelaufen bin.Intent-Filter für Service-Start

<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

so meinst du ** Aktivität **, und nicht ** Service **? – pskink

+0

Ich möchte 'Service' aus einer anderen Anwendung starten. Aus diesem Grund habe ich versucht, Daten von anderen Apps in meiner App zu empfangen. Der Dienst ist auf 'Windowmanager' sichtbar, der auf allen Apps schwebt. – Naroju

+0

und wie würden "andere Apps" Ihren Dienst starten? – pskink

Antwort

1

Ich möchte diesen Videoview-Dienst starten, auch aus anderen Anwendungen

Es sei denn, Sie derjenige schreiben die anderen Anwendungen sind, oder Sie mieten Menschen die anderen Anwendungen zu schreiben, keine anderen Anwendungen Beginnen Sie Ihren Service.

Meine Vermutung, von Ihrem <intent-filter>, ist, dass Sie denken, dass, wenn eine andere App ruft startActivity() auf einem ACTION_VIEWIntent, dass dies Ihr Dienst beginnt. Das ist falsch. startActivity() startet eine Aktivität. Es wird keinen Dienst starten, egal was <intent-filter> dieser Dienst hat.

+0

Vielen Dank für die Klarstellung. Ja, ich dachte daran, das zu tun. Aber es gibt keine Möglichkeit, dass ich den Service beginnen kann? – Naroju

+0

@Naroju: Sie können andere Entwickler mit Waffengewalt dazu zwingen, ihre Apps so zu ändern, dass sie 'startService()' aufrufen. Oder Sie können Ihre App so ändern, dass eine 'Theme.Translucent.NoTitleBar'-Aktivität Ihren' 'hat und die Arbeit an den Dienst delegieren. – CommonsWare

+0

Ja. das ist, was ich tat. Ich habe eine transparente Aktivität ohne Layout erstellt, die Service- und Kill-Aktivitäten nach Dienstbeginn startet. – Naroju

Verwandte Themen