La Red de Conocimientos Pedagógicos - Currículum vitae - Cómo llamar a ipowermanager.stub.asinterface android7.1

Cómo llamar a ipowermanager.stub.asinterface android7.1

La clase PowerManager no proporciona una interfaz de apagado, pero se comunica con la clase PowerManagerService a través de IBinder, un modo de comunicación único en Android. PowerManagerService es una implementación específica de la interfaz definida en la clase PowerManager y, además, llama a la clase Power para comunicarse con la siguiente capa. La interfaz de apagado se implementa en PowerManagerService y el servicio de energía implementa la función de apagado.

PowerManager se implementa a través de IPowerManager para llamar a la interfaz del servicio Power. IPowerManager es una clase generada automáticamente por archivos AIDL para facilitar la comunicación remota. Directorio de archivos IPowerManage.aidl

framework/base/core/Java/android/os/IPowerManage.aidl

IPowerManager implementa la interfaz de apagado, por lo que si podemos obtener el IBinder del Power servicio, la función de apagado se puede realizar llamando al método de apagado mediante reflexión.

Cabe señalar que ServiceManager administra el programa de servicio del sistema. Guarda el IBinder de todos los servicios. El IBinder de este servicio se puede obtener a través del nombre del servicio.

Pero la clase ServiceManager también está OCULTA y requiere reflexión para llamarla. Dos veces, a través de dos llamadas de reflexión, se puede llamar a la función de apagado implementada por el servicio de energía.