Create AIDL client

// callback implemetation
private val aidlCallback: ICalculatorCallback = object : ICalculatorCallback.Stub() {
    override fun onAdded(result: Int) {
        // do something when callback is received
        Toast.makeText(
            applicationContext,
            String.format(Locale.getDefault(), "Sum is: %d", result),
            Toast.LENGTH_LONG
        ).show()
    }
}
// aild service connection
private var aidlService: ICalculator? = null
private val serviceConnection = object : ServiceConnection {
    override fun onServiceConnected(name: ComponentName?, service: IBinder?) {
        // get aidl service instance
        aidlService = ICalculator.Stub.asInterface(service)
        // register callback
        aidlService?.registerListener(aidlCallback)

        Toast.makeText(applicationContext, "Service Connected", Toast.LENGTH_LONG).show()
    }

    override fun onServiceDisconnected(name: ComponentName?) {
        aidlService = null
        Toast.makeText(applicationContext, "Service Disconnected", Toast.LENGTH_LONG).show()
    }
}

Call AILD methods (Full Example):

Last updated