Function binder_ndk_sys::AServiceManager_getService

source ·
pub unsafe extern "C" fn AServiceManager_getService(
    instance: *const c_char,
) -> *mut AIBinder
Expand description

Gets a binder object with this specific instance name. Blocks for a couple of seconds waiting on it. This also implicitly calls AIBinder_incStrong (so the caller of this function is responsible for calling AIBinder_decStrong). This does polling. A more efficient way to make sure you unblock as soon as the service is available is to use AIBinder_waitForService.

WARNING: when using this API across an APEX boundary, do not use with unstable AIDL services. TODO(b/139325195)

WARNING: when using this API, typically, you should call it in a loop. It’s dangerous to assume that nullptr could mean that the service is not available. The service could just be starting. Generally, whether a service exists, this information should be declared externally (for instance, an Android feature might imply the existence of a service, a system property, or in the case of services in the VINTF manifest, it can be checked with AServiceManager_isDeclared).

\param instance identifier of the service used to lookup the service.