# DJI Mobile SDK V5 5.9.0 to 5.10.0 Differences

## API changes

5.9.0 Parent and Name | 5.9.0 Code | 5.10.0 Parent and Name | 5.10.0 Code | Parent | Name | Type | Param | Return
dji.v5.manager.interfaces.ICameraStreamManager.ScaleType | enum ScaleType | dji.v5.manager.interfaces.ICameraStreamManager. | enum ScaleType |  | X | X |  |
dji.v5.manager.interfaces.IKeyManager.getValue | <Result> void getValue(DJIKey<Result> key, CommonCallbacks.CompletionCallbackWithParam<Result> callback) | dji.v5.manager.interfaces.IKeyManager.getValue | <R> void getValue(DJIKey<R> key, CommonCallbacks.CompletionCallbackWithParam<R> callback) |  |  |  | X | X
dji.v5.manager.interfaces.IKeyManager.performAction | <Result> void performAction(DJIKey.ActionKey<?, Result> key, CommonCallbacks.CompletionCallbackWithParam<Result> callback) | dji.v5.manager.interfaces.IKeyManager.performAction | <R> void performAction(DJIKey.ActionKey<?, R> key, CommonCallbacks.CompletionCallbackWithParam<R> callback) |  |  |  | X | X
dji.v5.manager.interfaces.IKeyManager.listen | <Result> void listen(DJIKey<Result> key, Object listenHolder, boolean getOnce, CommonCallbacks.KeyListener<Result> callback) | dji.v5.manager.interfaces.IKeyManager.listen | <R> void listen(DJIKey<R> key, Object listenHolder, boolean getOnce, CommonCallbacks.KeyListener<R> callback) |  |  |  | X | X
dji.v5.manager.interfaces.IKeyManager.listen | <Result> void listen(DJIKey<Result> key, Object listenHolder, CommonCallbacks.KeyListener<Result> callback) | dji.v5.manager.interfaces.IKeyManager.listen | <R> void listen(DJIKey<R> key, Object listenHolder, CommonCallbacks.KeyListener<R> callback) |  |  |  | X | X
dji.v5.manager.interfaces.IKeyManager.performAction | <Param, Result> void performAction(DJIKey.ActionKey<Param, Result> key, Param param, CommonCallbacks.CompletionCallbackWithParam<Result> callback) | dji.v5.manager.interfaces.IKeyManager.performAction | <P, R> void performAction(DJIKey.ActionKey<P, R> key, P param, CommonCallbacks.CompletionCallbackWithParam<R> callback) |  |  |  | X | X
dji.v5.manager.interfaces.IKeyManager.getValue | <Result> Result getValue(DJIKey<Result> key, @NonNull Result defaultValue) | dji.v5.manager.interfaces.IKeyManager.getValue | <R> R getValue(DJIKey<R> key, @NonNull R defaultValue) |  |  |  | X | X
dji.v5.manager.interfaces.IKeyManager.getValue | <Result> Result getValue(DJIKey<Result> key) | dji.v5.manager.interfaces.IKeyManager.getValue | <R> R getValue(DJIKey<R> key) |  |  |  | X | X
dji.v5.manager.interfaces.ICameraStreamManager.ScaleType.CENTER_INSIDE | CENTER_INSIDE(2) | dji.v5.manager.interfaces.ICameraStreamManager.CENTER_INSIDE | CENTER_INSIDE(2) | X |  |  |  |
dji.v5.manager.interfaces.ICameraStreamManager.ScaleType.FIX_XY | FIX_XY(0) | dji.v5.manager.interfaces.ICameraStreamManager.FIX_XY | FIX_XY(0) | X |  |  |  |
dji.v5.manager.interfaces.ICameraStreamManager.ScaleType.CENTER_CROP | CENTER_CROP(1) | dji.v5.manager.interfaces.ICameraStreamManager.CENTER_CROP | CENTER_CROP(1) | X |  |  |  |
dji.v5.manager.interfaces.IKeyManager.setValue | <Param> void setValue(DJIKey<Param> key, Param param, CommonCallbacks.CompletionCallback callback) | dji.v5.manager.interfaces.IKeyManager.setValue | <P> void setValue(DJIKey<P> key, P param, CommonCallbacks.CompletionCallback callback) |  |  |  | X | X

## APIs added to 5.10.0

Parent and Name | Code
dji.v5.manager.interfaces.IDataProtectionManager.clearMSDKLog | boolean clearMSDKLog()
dji.v5.manager.interfaces.IDataProtectionManager.enableMSDKLog | void enableMSDKLog(boolean enabled)
dji.v5.manager.interfaces.IDataProtectionManager.getMSDKLogPath | String getMSDKLogPath()
dji.v5.manager.interfaces.IDataProtectionManager.isMSDKLogEnabled | boolean isMSDKLogEnabled()
dji.v5.manager.interfaces.ILiveStreamManager.getLiveStreamScaleType | ICameraStreamManager.ScaleType getLiveStreamScaleType()
dji.v5.manager.interfaces.ILiveStreamManager.setLiveStreamScaleType | void setLiveStreamScaleType(ICameraStreamManager.ScaleType scaleType)

--android --android