Je voudrais fournir un service qui peut être appelé par une autre application. Par conséquent, j'ai un service et un aide. Mais quand j'essaye d'avoir une application séparée pour lier ce service (bindService), cela me renvoie juste false ce qui signifie échouer. Voici mon code.bindService avec aidl return false
PS: Le contexte est déjà le ApplicationContext qui a obtenu en appelant getApplicationContext()
code qui tentent de lier le service
private static ServiceConnection connection = new ServiceConnection() {
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
sService = XXXService.Stub.asInterface(service);
}
@Override
public void onServiceDisconnected(ComponentName name) {
sService = null;
}
};
private static synchronized XXXService getService(final Context context) {
if (sService != null) {
return sService;
} else {
intent.setClassName(context.getPackageName(), "com.xxx.someservice");
if (context.bindService(intent, connection, Context.BIND_AUTO_CREATE)) {
Log.i(TAG, "can bind");
} else {
Log.i(TAG, "can not bind");
}
return sService;
}
}
AndroidManifest
<service android:name="com.xxx.someservice"
android:process=":main"
android:exported="true"/>
Il fonctionne grâce – Bear