Ce que je comprend de cette phrase, est qu'il est possible d'avoir une application A qui porte un service, et une autre application B qui peut appeler ce service. (Si je me trompe là dites le moi tout de suite ^^).
// Retient l'état de la connexion avec le service
private boolean mBound = false;
// Le service en lui-même
private MonService mService;
// Interface de connexion au service
private ServiceConnection mConnexion = new ServiceConnection() {
// Se déclenche quand l'activité se connecte au service
public void onServiceConnected(ComponentName className, IBinder service) {
mService = ((MonService.MonBinder)service).getService();
}
// Se déclenche dès que le service est déconnecté
public void onServiceDisconnected(ComponentName className) {
mService = null;
}
};
@Override
protected void onStart() {
super.onStart();
Intent mIntent = new Intent(this, MonService.class);
bindService(mIntent, mConnexion, BIND_AUTO_CREATE);
mBound = true;
}
@Override
protected void onStop() {
super.onStop();
if(mBound) {
unbindService(mConnexion);
mBound = false;
}
}
Donc pour reprendre mon exemple, il s'agirait de l'application B, celle qui veut appeler le service.
Ce que ne comprend pas, c'est comment faire pour utiliser ce service directement, alors que l'on est pas dans la même application. Autrement dit, comment importer la classe MonService, qui est dans l'application A, depuis mon application B :
// Le service en lui-même
private MonService mService;
Je me pose peut-être les mauvaises questions, et je tourne en rond...
Peut-être que j'ai mal compris la première phrase, et qu'il est impossible de faire cela ?
Sans rentrer dans les détails, mais pour expliquer mon contexte, mon service doit absolument se trouver dans une autre application que l'application principal (application B) pour des raisons de permission (utilisation de android.permission.WRITE_SETTINGS).
En fait, il s'agit d'une application professionnel, où je maîtrise les devices, et le service fait des choses qui m'oblige a installer l'application en tant que "system app" (dans /system/priv-app). Le problème, est que je ne voudrais pas avoir a installer l'application principal dans /system/priv-app pour diverse raisons.
J'espère que quelqu'un pourra peut-être répondre à ma question, ou m'aiguiller sur une autre méthode pour résoudre ma problématique.
En vous remerciant par avance.
edit: reformulation, orthographe
- Edité par TimothéTizio-Menut 22 août 2019 à 11:36:59
[android] Bound service entre deux applications
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.