Darf nicht an die Service-Absicht gebunden werden

8

Ich schreibe einen Android-Dienst von get Wetter, und die AndroidManifest.xml ist:

%Vor%

Nun möchte ich, dass eine andere apk diesen Dienst startet:

%Vor%

Und ich habe die Fehlermeldung:

%Vor%

Wie kann ich dieses Problem lösen?

Andere apk verwenden die Messenger-Methode, um mit dem Wetterdienst zu kommunizieren.

================================================== ==================================

Danke allen!

Jetzt ändere ich die AndroidManifest.xml meines Wetterdienstes:

%Vor%

Und ich benutze diese Methode zum Starten:

%Vor%

Dann bekam ich die Warnmeldung:

%Vor%     
Tony 17.08.2012, 13:50
quelle

4 Antworten

5

hara hier sagt aus der Dokumentation:
Wenn wir diesen Dienst in einem Remote-Prozess ausführen möchten (anstelle dessen für die .apk), können wir android: process in seinem Manifest-Tag verwenden, um eins zu spezifizieren:

%Vor%

Beachten Sie auch, dass der hier gewählte Name remote beliebig ist, und Sie können andere Namen verwenden, wenn Sie zusätzliche Prozesse wünschen. Das Präfix : hängt den Namen des Standardprozesses Ihres Pakets an. Nach diesem Schritt können Clients nun an den Dienst binden und Nachrichten an ihn senden. Beachten Sie, dass sich Clients damit beim Empfang von Nachrichten registrieren können.

Bearbeiten1 :
Zweitens, wenn das Element (in Manifest) eine Aktionszeichenfolge enthält, verwenden Sie es. Zum Beispiel, wenn Ihr Dienst wie folgt deklariert:

%Vor%

Tun Sie dies in onCreate() Methode Ihres Dienstes:

%Vor%

Ich habe das in dieser Frage gesehen:
Kann Service Intention nicht starten

Bearbeiten2 :
Ich habe Ihr Manifest erneut gesehen. Es scheint, dass Ihr Manifest keine Main/Launcher Activity .In android 3.1 and later hat, sodass kein Dienst verfügbar ist. In fact for security reason all services,receivers,... that you declare in manifest,will not register unless your App run explicitly by user und dies erfordert eine Main / Launcher Activity.So müssen Sie solche Aktivität zu Ihrer App hinzufügen und seien Sie vorsichtig, dass es bereits durchgeführt wurde.

    
hasanghaforian 17.08.2012, 14:51
quelle
7

Ich hatte das gleiche Problem. Für mich bestand das Problem darin, dass ich zuerst die App über die API und dann die App, die die API zur Verfügung stellte, installiert habe. Deinstallieren / Neuinstallation der ersten App hat das Problem gelöst.

Update: Um das Problem zu vermeiden, sollten beide Apps die Berechtigung in ihrem Manifest definieren.

    
plaisthos 07.01.2013 17:42
quelle
2

Fügen Sie Ihrem WeatherService einen Intent-Filter mit einer Aktion hinzu:

%Vor%

Wenn Sie dann in Ihrer anderen App bindService () verwenden, verwenden Sie diese Absicht:

%Vor%     
ComputerEngineer88 17.08.2012 15:12
quelle
0

In Ihrer Aktivitätsklasse do ... nehmen Sie an, dass BothButton der Name der Aktivitätsklasse und CleverTexting der Name der Serviceklasse ist. Sie möchten eine Aktivität von einem Dienst und dann einen Dienst von einer Aktivität aufrufen. Wenn Ihr Code in mehr als 4.0 Android-Version funktioniert, als Sie dies tun können, wird es kein Problem geben.

%Vor%

und in der Dienstklasse tun Sie ... wo Sie Ihre Aktivität aufrufen möchten

%Vor%     
Rajeev Kashyap 05.09.2013 04:29
quelle

Tags und Links