initialize method
Implementation
Future<void> initialize() async {
if (_isDisposed) return Future<void>.value();
_creatingCompleter = Completer<void>();
try {
final Map<dynamic, dynamic?> reply =
await (_channel.invokeMapMethod('initialize', <String, dynamic>{
'cameraName': description.name,
'resolutionPreset': _serializeResolutionPreset(resolutionPreset),
}) as FutureOr<Map<dynamic, dynamic?>>);
_textureId = reply['textureId'];
value = value.copyWith(
isInitialized: true,
previewSize: Size(reply['previewWidth'].toDouble(),
reply['previewHeight'].toDouble()));
_resultSubscription = EventChannel('${_scanType}_$_textureId/event')
.receiveBroadcastStream()
.listen(_handleResult);
} on PlatformException catch (e) {
//当发生权限问题的异常时会抛出
throw RScanCameraException(e.code, e.message);
}
_creatingCompleter!.complete();
return _creatingCompleter!.future;
}