Tengo una clase que se extiende android.os.Handler
. Se pasa una instancia de este controlador al constructor de un Messenger
. Messenger
's IBinder
de getBinder
se pasa como resultado de onBind
eventos en mi servicio. Los mensajes enviados a través de la carpeta desde aplicaciones remotas van al método handleMessage
del controlador, sin embargo las llamadas a Binder.getCallingUid
y Binder.getCallingPid
dentro de handleMessage
siempre devuelven el uid y pid del proceso del servicio (que definitivamente no es el mismo proceso que la aplicación remota). handleMessage
es definitivamente parte de una transacción IPC, ¿no es así? Entonces, ¿dónde me he equivocado? Necesito que esto funcione para la autenticación de aplicaciones de conexión.getCallingUid/getCallingPid return current uid y pid en Handler.handleMessage
Gracias de antemano.
Editar
OK. Tengo la horrible sensación de que handleMessage
no forma parte de la transacción IPC, porque eso sucede en hilos separados para AIDL que pone mensajes en una cola para el Messenger
. ¿Hay alguna otra forma de obtener la identificación de usuario y la identificación del proceso de la persona que llama?
¡Muchas gracias! De hecho, parece que sendMessageAtTime da la respuesta correcta en getCallingPid – Boy