safouane Posted April 7, 2014 Share Posted April 7, 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? Link to comment Share on other sites More sharing options...
polcandro Posted April 7, 2014 Share Posted April 7, 2014 Tu ne sais pas comment créer un nouveau package ou tu veux un code source pour la classe ServiceClient.java? Link to comment Share on other sites More sharing options...
safouane Posted April 7, 2014 Author Share Posted April 7, 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. Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.