2015-09-23 8 views
1

J'essaie d'ajouter la partie serveur rtsp de libstreaming à mon application et de l'exécuter en tant que service, mais même si mon application se construit et s'exécute correctement, la partie service n'est pas en train d'être installé et j'apprécierais toute aide pour comprendre pourquoi. Je pense que je manque un pas.Comment obtenir un module installé en tant que service - Android

J'ai ajouté libstreaming à mon application existante en tant que module, et libstreaming est répertorié comme une dépendance. Tout compile et commence bien, mais context.startService() renvoie null pour un ComponentName. According to the docs, cela signifie que le service "n'existe pas", donc je pense qu'il me manque quelque chose, mais je ne sais pas quoi. Je construis dans Android Studio, puis en utilisant Maj + F9 pour installer mon application et démarrer le débogage, cela doit installer l'application mais pas la partie service? Toute aide serait grandement appréciée!

Voilà comment je suis configuré:

enter image description here

Dépendance:

enter image description here

Mon code pour démarrer le service:

ComponentName cName = null; 
try 
{ 
    // Start the RTSP server. Returns name of the component that is started, or is already running 
    cName = this.startService(new Intent(this, RtspServer.class)); 
} 
catch(Exception e) 
{ 
    postUIMessage("onCreate() startService() exception: " + e.toString()); 
} 
if(cName != null) 
{ 
    postUIMessage("Service started: " + cName.toString()); 
} 
else 
{ 
    postUIMessage("Service NOT started: " + cName.toString()); 
} 

Mon fichier AndroidManifest.xml :

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.example.matt.mattvideoreceiver" > 
    <uses-permission android:name="android.permission.INTERNET" /> 

    <uses-permission android:name="android.permission.RECORD_AUDIO"></uses-permission> 
    <uses-permission android:name="android.permission.CAMERA"></uses-permission> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission> 
    <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS"></uses-permission> 

    <uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="android.permission.RECORD_AUDIO" /> 
    <uses-permission android:name="android.permission.CAMERA" /> 

    <service android:name="net.majorkernelpanic.streaming.rtsp.RtspServer"/> 

    <application 
     android:allowBackup="true" 
     android:icon="@mipmap/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme" > 
     <activity 
      android:name=".MainActivity" 
      android:label="@string/app_name" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
    </application> 

</manifest> 

Répondre

1

J'ai trouvé le problème, voici la solution au cas où cela aiderait quelqu'un d'autre. Dans mon fichier AndroidManifest.xml, la ligne:

<service android:name="net.majorkernelpanic.streaming.rtsp.RtspServer"/> 

DOIT aller à l'intérieur de la section

<Application> 

. Une fois que j'ai déplacé cette ligne dans la section de l'application context.startService() retourne maintenant le nom du service, indiquant que le service est en cours d'exécution.

Le service n'envoie pas de vidéo comme je m'y attendais, MAIS c'est un problème différent et au moins il fonctionne maintenant et cela répond à cette question. :)

est ici le AndroidManifest.xml travail

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.example.matt.mattvideoreceiver" > 
    <uses-permission android:name="android.permission.INTERNET" /> 

    <uses-permission android:name="android.permission.RECORD_AUDIO"></uses-permission> 
    <uses-permission android:name="android.permission.CAMERA"></uses-permission> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission> 
    <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS"></uses-permission> 

    <uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="android.permission.RECORD_AUDIO" /> 
    <uses-permission android:name="android.permission.CAMERA" /> 



    <application 
     android:allowBackup="true" 
     android:icon="@mipmap/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme" > 

     <service android:name="net.majorkernelpanic.streaming.rtsp.RtspServer"/> 

     <activity 
      android:name=".MainActivity" 
      android:label="@string/app_name" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
    </application> 

</manifest>