ClassCastException durante el uso del servicio

Definí un servicio local:

public class ComService extends Service implements IComService { private IBinder binder = new ComServiceBinder(); public class ComServiceBinder extends Binder implements IComService.IServiceBinder { public IComService getService() { return ComService.this; } } public void test(String msg) { System.out.println(msg); } @Override public IBinder onBind(Intent intent) { return binder; } } 

La interfaz correspondiente:

 public interface IComService { public void test(String msg); public interface IServiceBinder { IComService getService(); } } 

A continuación, intento vincular el servicio en otra actividad en otra aplicación, donde la misma interfaz está disponible:

 bindService(new Intent("ch.ifi.csg.games4blue.gamebase.api.ComService"), conn, Context.BIND_AUTO_CREATE); 

y

 private ServiceConnection conn = new ServiceConnection() { @Override public void onServiceConnected(ComponentName name, IBinder service) { Log.i("INFO", "Service bound " + name); comService = ((IComService.IServiceBinder)service).getService(); serviceHandler.sendEmptyMessage(0); } @Override public void onServiceDisconnected(ComponentName arg0) { Log.i("INFO", "Service Unbound "); } }; 

pero la línea

 comService = ((IComService.IServiceBinder)service).getService(); 

siempre lanza un

 05-02 22:12:55.922: ERROR/AndroidRuntime(622): java.lang.ClassCastException: android.os.BinderProxy 

No puedo explicar por qué, he seguido el ejemplo de la aplicación en http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/app/LocalServiceBinding.html

Cualquier sugerencia sería agradable!

Debe utilizar AIDL para definir interfaces que abarquen aplicaciones (los llamados "servicios remotos"). Ha seguido un ejemplo de enlace local, pero no está utilizando enlace local. Pruebe este y este proyecto de ejemplo para un ejemplo de enlace remoto utilizando AIDL.

  • Android termine la actividad actual hace que la aplicación cierre
  • GetContentResolver () y getWindow () en un DialogFragment
  • Android Linkify - números de teléfono que se pueden hacer clic
  • Cómo configurar gradle-2.2.1-all.zip manualmente
  • Envío de datos POST en Android
  • Múltiples super clases y reutilización de código
  • NullPointerException en CustomArrayAdapter
  • Reemplazar el carácter dentro de TextWatcher en android
  • Cómo burlar un objeto inyectado que no se declara en el módulo?
  • ¿Los hilos son lo suficientemente fiables para calcular segundos?
  • Uso de AppBarLayout.Behavior.DragCallback para controlar el desplazamiento del diseño de barra de herramientas que se contrae
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.