Android aidl no puede enlazar al servicio, cuando el host se instala después de que el cliente
Tengo un servicio de aidl que funciona correctamente hasta que el cliente se instala cuando el anfitrión se instala antes, pero como he mencionado en el título cuando el host no está instalado e instalar el cliente y después de que instalar el host me sale un SecurityException En bindService ()
Intent serviceIntent = new Intent(AidlService.class.getName()); if (!mContext.getPackageManager().queryIntentServices(serviceIntent, 0).isEmpty()) { mContext.bindService(serviceIntent, mServiceConn, Context.BIND_AUTO_CREATE); } Caused by: java.lang.SecurityException: Not allowed to bind to service Intent { act=com.mypackage.AidlService}
También he probado algunas aplicaciones que utilizan aidl y tenían el mismo problema!
- Cómo obtener datos de un servicio sin consolidar en Android
- Cada actividad en Android es un proceso o una aplicación es un proceso
- Java.io.IOException: write failed: EPIPE (Broken pipe)
- ¿Por qué es posible escribir una matriz booleana en un paquete pero no en un booleano?
- Android: startActivityForResult no llamando aActivityResult
ACTUALIZAR
Me di cuenta de que el problema es con el permiso, ya que mi servicio utiliza un permiso personalizado cuando el cliente se instala antes de que el host no puede entender el permiso, por lo que cuando instalo el host y tratar de vincular a él, android no puede Utilizar el permiso, por lo que lanza una excepción de seguridad!
android:permission="com.mypackage.AidlService.BIND" <permission android:name="com.mypackage.AidlService.BIND" android:label="@string/perName" android:description="@string/perDesc" android:protectionLevel="normal" />
Cualquier idea para solucionar el problema?
- Cómo realizar la comprobación nula IPC manual
- ¿Se puede utilizar Messenger (alternativa ligera a AIDL) para la comunicación entre aplicaciones?
- La vinculación al servicio que ya fue iniciada por BroadcastReceiver crea una nueva instancia de servicio
- Usar SharedPreferences en modo multiproceso
- BindService () devuelve false pero unbindService () necesita ser llamado?
- ¿Por qué AIDL / Messenger está enlazado a un Servicio?
- Android IPC, servicio no obtener instanciado
- Transferir InputStream a otro servicio (a través de límites de proceso) con ParcelFileDescriptor.createPipe () falla con "EBADF (número de archivo incorrecto)"
Según el permiso personalizado de Android falla basado en la solicitud de instalación de la solicitud
Deberías usar android: protectionLevel = "signature" en lugar de normal en permiso tag
- Cómo hacer progresbar circular con el estado de progreso en android?
- ¿Es esto un error en Android GregorianCalendar?