2016-05-22 1 views
0

Ich versuche, eine Anfrage an einen anderen Dienst (eine andere app) zu machen, aber Ausnahme bekommen:Android Anfrage an einen anderen Dienst - explizite vs implizite Absicht

java.lang.IllegalArgumentException: 
Service Intent must be explicit: Intent { act=com.myApp.DoAction } 

ich einige Lesungen haben und immer noch verwirrt:
Here , ist es geschrieben: Since Android 5.0 (Lollipop) bindService() must always be called with an explicit intent.
Here, es ist geschrieben: Implicit intents do not name a specific component, but instead declare a general action to perform, which allows a component from another app to handle it

Was wird die richtige Absicht sein? Was wird das richtige Beispiel sein? ich tue:

Intent intent = new Intent(Intent.ACTION_SEND); 
intent.setAction("com.anotherApp.MyService"); 
// binding to remote service 
bindService(intent, AddServiceConnection, Service.BIND_AUTO_CREATE); 

Vielen vielen Dank für die Hilfe.

Antwort

1

Ich glaube, dass diese Intent intent = new Intent(Intent.ACTION_SEND);

Codezeile besagt, dass Absicht Aktion implizit ist. Es erklärt die Absicht mit einer abstrakten SEND-Aktion. versuchen Intent.ACTION_SEND Entfernen

0

Nachdem einige Tutorials versuchen: Intent implizit und this nice example shows how to deal with it

Intent intent = new Intent("com.anotherapp.MyService"); 
intent.setPackage("com.anotherapp"); 
bindService(intent, AddServiceConnection, Service.BIND_AUTO_CREATE);