KeyedAppStatesReporter
abstract class KeyedAppStatesReporter
kotlin.Any | |
↳ | androidx.enterprise.feedback.KeyedAppStatesReporter |
A reporter of keyed app states to enable communication between an app and an EMM (enterprise mobility management). For production, create an instance using create(Context)
. For testing see the FakeKeyedAppStatesReporter
class in the enterprise-feedback-testing
artifact.
Summary
Public methods | |
---|---|
open static KeyedAppStatesReporter |
Create a reporter that binds to device owners, profile owners, and the Play store. |
open static KeyedAppStatesReporter |
Create a reporter using the specified executor. |
abstract Unit |
setStates(@NonNull states: MutableCollection<KeyedAppState!>) |
open Unit |
setStates(@NonNull states: MutableCollection<KeyedAppState!>, @Nullable callback: KeyedAppStatesCallback?) Set app states to be sent to an EMM (enterprise mobility management). |
abstract Unit |
setStatesImmediate(@NonNull states: MutableCollection<KeyedAppState!>) |
open Unit |
setStatesImmediate(@NonNull states: MutableCollection<KeyedAppState!>, @Nullable callback: KeyedAppStatesCallback?) Performs the same function as |
Public methods
create
@NonNull open static fun create(@NonNull context: Context): KeyedAppStatesReporter
Create a reporter that binds to device owners, profile owners, and the Play store.
Each instance maintains bindings, so it's recommended that you maintain a single instance for your whole app, rather than creating instances as needed.
create
@NonNull open static fun create(
@NonNull context: Context,
@NonNull executor: Executor
): KeyedAppStatesReporter
Create a reporter using the specified executor.
Each instance maintains bindings, so it's recommended that you maintain a single instance for your whole app, rather than creating instances as needed.
The executor must run all Runnable
instances on the same thread, serially.
setStates
abstract funsetStates(@NonNull states: MutableCollection<KeyedAppState!>): Unit
Deprecated: use setStates(Collection, KeyedAppStatesCallback)
which reports errors.
setStates
open fun setStates(
@NonNull states: MutableCollection<KeyedAppState!>,
@Nullable callback: KeyedAppStatesCallback?
): Unit
Set app states to be sent to an EMM (enterprise mobility management). The EMM can then display this information to the management organization.
Do not send personally-identifiable information with this method.
Each provided keyed app state will replace any previously set keyed app states with the same key for this package name.
If multiple keyed app states are set with the same key, only one will be received by the EMM. Which will be received is not defined.
This information is sent immediately to all device owner and profile owner apps on the device. It is also sent immediately to the app with package name com.android.vending if it exists, which is the Play Store on GMS devices.
EMMs can access these states either directly in a custom DPC (device policy manager), via Android Management APIs, or via Play EMM APIs.
KeyedAppStatesCallback#onResult(int, Throwable)
will be called when an error occurs.
setStatesImmediate
abstract funsetStatesImmediate(@NonNull states: MutableCollection<KeyedAppState!>): Unit
Deprecated: use setStatesImmediate(Collection, KeyedAppStatesCallback)
which reports errors.
setStatesImmediate
open fun setStatesImmediate(
@NonNull states: MutableCollection<KeyedAppState!>,
@Nullable callback: KeyedAppStatesCallback?
): Unit
Performs the same function as setStates(Collection, KeyedAppStatesCallback)
, except it