"Not allowed to bind to service Intent"???

D

domino-bs

Neues Mitglied
0
Moin.

Vorgeschichte:
Ich arbeite gerade an einer Overlaynetzwerkumsetzung für das DTN-Protokoll auf Android. Dafür habe ich einen Remoteservice geschrieben, der auch schon seinen Dienst tut. Um die Funktionen des Remoteservice zu testen habe ich seinerzeit (natürlich im gleichen Projekt) eine Activity benutzt, die sich per ServiceConnection über das AIDL Interface mit meinem Remoteservice verbunden hat. Das hat auch alles super geklappt.

Problem:
Jetzt wollte ich noch eine kleine App schreiben, womit ich den Remoteservice präsentieren kann. Die App soll Kleinanzeigen aufgeben können und vom Remoteservice empfangene Kleinanzeigenpakete abfragen. Dazu hat die "Kleinanzeigenapp" auch einen eigenen Service (lokal, kein Remote). Dieser Service muss sich nach dem Start mit dem Remoteservice verbinden. Der Code sieht eigentlich auch ganz gut aus.. (halt eben so wie bei der Test-Activity aus dem Remoteservice-Projekt).
Wenn ich jetzt jedoch meinen Remoteservice starte und anschließend den Service von der Kleinanzeigenapp starte wirft mir Android die Exception "java.lang.SecurityException: Not allowed to bind to service Intent { cmp="..remoteservice.." } um die Ohren. Zuerst dachte ich an eine fehlende Permission, aber Google hat ncihts wirklich sinnvolles zu Tage gefördert. Das Codefragment, dass den Crash auslöst lautet:

Code:
// Verbindung zum DTNRemoteservice aufbauen
        Intent i = new Intent();
        i.setClassName("de.ibr.dtnandroidservice", "de.ibr.dtnandroidservice.remoteservice.DTNRemoteService");
        bindService(i, mConnection, Context.BIND_AUTO_CREATE);
und wird in der onCreate() Methode des Kleinanzeigenservices ausgeführt.. Wäre super, wenn wer eine Idee hat. Warum kann ich aus dem gleihcen Projekt problemlos darauf zugreifen und aus einer anderen App heraus nicht!?

Gruß DoM

P.S.: Wenn es hilft poste ich gerne weitere Codefragmente, aber wenn ich "einfach" mal den ganzen Connectionkram poste sind wir bei einem Haufen Zeilen ;-) Wenn geht also bitte gezielt nachfragen!
 
Moin nochmal..

Ich scheine das Problem gelöst zu haben. Wenn man sich von ausserhalb des eigenen Projekts auf einen Remoteservice verbinden will muss im Manifest des Remoteserviceprojekts ein 'Android:export="true"' stehen =>

Code:
<service android:name=".remoteservice.name"    android:process=":serviceProzessName" android:exported="true">
Standartwert ist (falls man keine Intentfilter drinstehen hat) false..
Ich hoffe mal das erspart dem ein oder anderem langwieriges suchen -.-

Gruß DoM
 

Ähnliche Themen

Chrilos
Antworten
9
Aufrufe
592
koje71
koje71
M
  • myoggradio
Antworten
4
Aufrufe
912
myoggradio
M
Muecke1982
Antworten
8
Aufrufe
1.034
Skyhigh
Skyhigh
Zurück
Oben Unten