I want to implement kiosk mode on react native (android). I have implemented the functionality to pin/unpin application and check if lock task mode is active using activityManager.getLockTaskModeState, startLockTask & stopLockTask.
The problem is i cannot track when user unpin the app by pressing recencts/back buttons.
i tried to add event listener with following code without success
public void registerLifecycleEventObserver() {
UiThreadUtil.runOnUiThread(new Runnable() {
@Override
public void run() {
AppCompatActivity activity = (AppCompatActivity) reactContext.getCurrentActivity();
activity.getLifecycle().addObserver(KioskModeModule.this);
}
});
}
@Override
public void onStateChanged(@NonNull LifecycleOwner source, @NonNull Lifecycle.Event event) {
boolean isKioskEnabled = isLockTaskModeActive();
if (this.isKioskEnabled != isKioskEnabled) {
this.isKioskEnabled = isKioskEnabled;
WritableMap args = Arguments.createMap();
args.putBoolean("isKioskEnabled", isKioskEnabled);
sendEvent("onKioskStateChange", args);
}
}
Any idea on how i can listen to kiosk mode state change?