safouane Posté(e) 7 avril 2014 Share Posté(e) 7 avril 2014 J'ai fait une première application MyService qui fournit un service avec une interface AIDL. J'ai besoin de me connecter à ce service via une autre application. Pour ce faire, j'ai fait une autre application appelée ClientService et j'ai pu obtenir le service. Maintenant ce que je dois faire est de créer un package java contenant une classe ServiceClient.java. Cette classe doit se connecter à MyService, puis dans la 2éme version de ma deuxième application j'importe ce package qui devrait me fournir mon service. Comment puis-je faire cela? Lien vers le commentaire Partager sur d’autres sites More sharing options...
polcandro Posté(e) 7 avril 2014 Share Posté(e) 7 avril 2014 Tu ne sais pas comment créer un nouveau package ou tu veux un code source pour la classe ServiceClient.java? Lien vers le commentaire Partager sur d’autres sites More sharing options...
safouane Posté(e) 7 avril 2014 Auteur Share Posté(e) 7 avril 2014 Merci polcandro pour cette attention accordée à ma question. En effet j'ai pu resoudre mon problème, j'avais un code non fonctionnel mais j'ai trouvé finalement la solution : Dans la classe Service client://ctx : c'est une variable de type context à initialiser dans le constructeur de cette classepublic ServiceClient(Context c) {this.ctx = c;} public boolean connectService () { boolean ret = ctx.bindService(new Intent().setClassName("com.example.service", "com.example.service.MyService"), mServiceConnection, Context.BIND_AUTO_CREATE); return ret; }public ServiceConnection mServiceConnection = new ServiceConnection(){ @@override public void onServiceConnected(ComponentName arg0, IBinder service) { // TODO Auto-generated method stub mService= IMyService.Stub.asInterface(service); } @@override public void onServiceDisconnected(ComponentName arg0) { // TODO Auto-generated method stub } };//par la suite dans la redéfinition des méthodes avec le serviceexemple : public int ReNum(){ int v=-1; if(mServiceConnection !=null) { try{ v=mService.getNumber(); }catch(RemoteException e){ } }else{ v=-30; // just pour le test dans le débaugage } return v; }//en suite dans l'activité mére il faut tout d'abord importer le package et créer un objet puis profiter de la méthode définie précédement comme suit:ServiceClient client = new ServiceClient(this); // J'insistes bcp sur l'histoire du contexte, c'est là où j'avais un problème client.connectService();//maintenant nous sommes connectés au service donc nous pouvons tous faire. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.