androidframeworksaidl

accessing aidl to consume the custom service apis + android


There was a service in framework level, they are binding and starting that service from the framework only. I need to access that service and consume those APIs from the client (Android) side. I have gone through the most of the examples which are having code for create/start service connection from the client and whenever service connected in that connected listener using IBinder, we can access those APIs. I tried, like adding aidl file at client side with the same package structure and added following code.

val DevManager =applicationContext.getSystemService("servicename")
        val clazz = Class.forName(DevManager.javaClass.name)
        val method = DevManager.javaClass.getDeclaredMethod(
            "getIDevManager",
            Context::class.java
        )
        method.isAccessible = true
        val DevService: IDevManager =
            method.invoke(DevManager) as IDevManager
        var status = DevManager.devStatus

We are getting NoSuchMethodException. Please suggest how can we achieve this, thanks in advance.


Solution

  • try {
            val testManager = TestApplication.context!!.getSystemService(SERVICE_NAME)
    
            val status = testManager.javaClass.getDeclaredMethod("methodName")
            status.isAccessible = true
            result = (status.invoke(testManager)).toString()
        } catch (e: Exception) {
            Log.d(TAG, " exception: ${e.message}")
            e.printStackTrace()
        }