J'ai recherché partout pour résoudre ce problème, et je suis assez certain qu'il a à voir avec mon fichier manifeste. Lorsque vous essayez de vous connecter avec le code ci-dessous avec contextService = IContextInterface.Stub.asInterface(service)
, les empreintes de code dans le journal indiquant que l'objet de service est toujours nulProblèmes liant une application à un service avec AIDL
contextServiceConnection = new ServiceConnection() {
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
contextService = IContextInterface.Stub.asInterface(service);
Toast.makeText(getApplicationContext(),
"Context Service Connected", Toast.LENGTH_SHORT)
.show();
Log.d("IApp", "Binding is done - Context Service connected");
}
@Override
public void onServiceDisconnected(ComponentName name) {
// TODO Auto-generated method stub
contextService = null;
Toast.makeText(getApplicationContext(), "Service Disconnected",
Toast.LENGTH_SHORT).show();
Log.d("IRemote", "Binding - Location Service disconnected");
}
};
if (contextService == null) {
Intent contextIntent = new Intent();
contextIntent.setPackage("com.example.the_f.myapplication");
contextIntent.setAction("service.contextFinder");
bindService(contextIntent, contextServiceConnection, Context.BIND_AUTO_CREATE);
mContextIsBound = true;
if(contextService==null)
Log.d("locService","NULL");
}
Je vérifie même une deuxième fois, de sorte que si son null il va essayer de lier manuellement à celui-ci. cependant, il frappe toujours la dernière instruction if car le journal imprime le "locService: NULL".
Voici mon manifeste d'application client:
<?xml version="1.0" encoding="utf-8"?>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
et voici mon manifeste de service à distance:
<?xml version="1.0" encoding="utf-8"?>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<service
android:name=".MyMiddleware"
android:enabled="true"
android:exported="true"></service>
</application>
ive redémarré ce programme 3 fois parce que je pensais qu'il construisait de manière incorrecte ou il y avait un problème dans un certain dossier enterré quelque part. Je ne suis pas vraiment un pro android donc je ne connais pas beaucoup de choses. toute aide ou orientation serait appréciée. merci d'avance
Vous devez attendre sur ServiceConnected. – natario
ok vous avez raison. J'ai laissé tomber une déclaration d'impression dans onServiceConnected et son ne pas être appelé. Je ne suis pas sûr de ce que je fais différent. J'ai à peu près copié les différents exemples que j'ai vus en ligne. même sur le site de développement Android, ils l'ont mis en place de cette façon. donc apparemment mon application ne se connecte jamais au service –