diff --git a/core/java/android/hardware/camera2/impl/CameraDeviceImpl.java b/core/java/android/hardware/camera2/impl/CameraDeviceImpl.java index d84a6fcbd16fe..d2e820e17776f 100644 --- a/core/java/android/hardware/camera2/impl/CameraDeviceImpl.java +++ b/core/java/android/hardware/camera2/impl/CameraDeviceImpl.java @@ -974,6 +974,7 @@ public class CameraDeviceImpl extends CameraDevice if (mRemoteDevice != null) { mRemoteDevice.disconnect(); + mRemoteDevice.unlinkToDeath(this, /*flags*/0); } // Only want to fire the onClosed callback once; diff --git a/core/java/android/hardware/camera2/impl/ICameraDeviceUserWrapper.java b/core/java/android/hardware/camera2/impl/ICameraDeviceUserWrapper.java index ddc3fd12b70d0..b2f6c1d4c289f 100644 --- a/core/java/android/hardware/camera2/impl/ICameraDeviceUserWrapper.java +++ b/core/java/android/hardware/camera2/impl/ICameraDeviceUserWrapper.java @@ -31,6 +31,7 @@ import android.hardware.camera2.ICameraDeviceUser; import android.hardware.camera2.impl.CameraMetadataNative; import android.hardware.camera2.params.OutputConfiguration; import android.hardware.camera2.utils.SubmitInfo; +import android.os.IBinder; import android.os.RemoteException; import android.view.Surface; @@ -53,6 +54,10 @@ public class ICameraDeviceUserWrapper { mRemoteDevice = remoteDevice; } + public void unlinkToDeath(IBinder.DeathRecipient recipient, int flags) { + mRemoteDevice.asBinder().unlinkToDeath(recipient, flags); + } + public void disconnect() { try { mRemoteDevice.disconnect();