Giter Club home page Giter Club logo

flutter_zoom_plugin's Introduction

Flutter Zoom Plugin

License

A Flutter plugin for the Zoom SDK.

Note: This plugin is still under active development, and some Zoom features might not be available yet. We are working to add more features. Feedback and Pull Requests are always welcome.

Features

  • Stream meeting status.
  • Join meeting.
  • Start an existing meeting for non-login user.
  • Start an existing meeting for logged in user.
  • Start an instant meeting for logged in user.

Zoom SDK Versions

Android: https://github.com/zoom/zoom-sdk-android/releases/tag/v4.6.21666.0429

iOS: https://github.com/zoom/zoom-sdk-ios/releases/tag/v4.6.21666.0428

Installation

First, add flutter_zoom_plugin as a dependency in your pubspec.yaml file.

Use the git tags for deployments as milestones as the master branch is considered active development.

  flutter_zoom_plugin:
      git:
        url: git://github.com/decodedhealth/flutter_zoom_plugin.git
        ref: 0.0.8

Please use master for Apple app store build deployments.

  flutter_zoom_plugin:
      git:
        url: git://github.com/decodedhealth/flutter_zoom_plugin.git
        ref: master

iOS

Add two rows to the ios/Runner/Info.plist:

  • one with the key Privacy - Camera Usage Description and a usage description.
  • and one with the key Privacy - Microphone Usage Description and a usage description.

Or in text format add the key:

<key>NSCameraUsageDescription</key>
<string>Need to use the camera for call</string>
<key>NSMicrophoneUsageDescription</key>
<string>Need to use the microphone for call</string>

NOTE for testing on the iOS simulator

If you want to use the iOS Simulator to test your app, you will need to ensure you have the iOS Dev Zoom SDK as a dependency.

To use the Dev Zoom SDK, run the following

flutter pub run flutter_zoom_plugin:unzip_zoom_sdk dev

To switch back to the normal Zoom SDK, simply run

flutter pub run flutter_zoom_plugin:unzip_zoom_sdk

Android

Change the minimum Android sdk version to at the minimum 21 in your android/app/build.gradle file.

minSdkVersion 21

Add the zoom proguard content to your android project: https://github.com/zoom/zoom-sdk-android/blob/master/proguard.cfg

Examples

Meeting status

There are 2 ways to obtains the Zoom meeting status

  • Listen to Zoom Status Event stream, or
  • Polling the Zoom status using a Timer

The plugin emits the following Zoom meeting events:

For iOS:

  • MEETING_STATUS_IDLE
  • MEETING_STATUS_CONNECTING
  • MEETING_STATUS_INMEETING
  • MEETING_STATUS_WEBINAR_PROMOTE
  • MEETING_STATUS_WEBINAR_DEPROMOTE
  • MEETING_STATUS_UNKNOWN

For Android:

  • MEETING_STATUS_IDLE
  • MEETING_STATUS_CONNECTING
  • MEETING_STATUS_INMEETING
  • MEETING_STATUS_WEBINAR_PROMOTE
  • MEETING_STATUS_WEBINAR_DEPROMOTE
  • MEETING_STATUS_UNKNOWN
  • MEETING_STATUS_DISCONNECTING
  • MEETING_STATUS_FAILED
  • MEETING_STATUS_IN_WAITING_ROOM
  • MEETING_STATUS_RECONNECTING
  • MEETING_STATUS_WAITINGFORHOST

Join Meeting

class MeetingWidget extends StatelessWidget {

  ZoomOptions zoomOptions;
  ZoomMeetingOptions meetingOptions;

  Timer timer;

  MeetingWidget({Key key, meetingId, meetingPassword}) : super(key: key) {
    // Setting up the Zoom credentials
    this.zoomOptions = new ZoomOptions(
      domain: "zoom.us",
      appKey: "appKey", // Replace with with key got from the Zoom Marketplace
      appSecret: "appSecret", // Replace with with secret got from the Zoom Marketplace
    );

    // Setting Zoom meeting options (default to false if not set)
    this.meetingOptions = new ZoomMeetingOptions(
        userId: 'example',
        meetingId: meetingId,
        meetingPassword: meetingPassword,
        disableDialIn: "true",
        disableDrive: "true",
        disableInvite: "true",
        disableShare: "true",
        noAudio: "false",
        noDisconnectAudio: "false"
    );
  }

  bool _isMeetingEnded(String status) {
    var result = false;

    if (Platform.isAndroid)
      result = status == "MEETING_STATUS_DISCONNECTING" || status == "MEETING_STATUS_FAILED";
    else
      result = status == "MEETING_STATUS_IDLE";

    return result;
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
          title: Text('Loading meeting '),
      ),
      body: Padding(
        padding: EdgeInsets.all(16.0),
        child: ZoomView(onViewCreated: (controller) {

          print("Created the view");

          controller.initZoom(this.zoomOptions)
              .then((results) {

            print("initialised");
            print(results);

            if(results[0] == 0) {

              // Listening on the Zoom status stream (1)
              controller.zoomStatusEvents.listen((status) {

                print("Meeting Status Stream: " + status[0] + " - " + status[1]);

                if (_isMeetingEnded(status[0])) {
                  Navigator.pop(context);
                  timer?.cancel();
                }
              });

              print("listen on event channel");

              controller.joinMeeting(this.meetingOptions)
                  .then((joinMeetingResult) {

                    // Polling the Zoom status (2)
                timer = Timer.periodic(new Duration(seconds: 2), (timer) {
                  controller.meetingStatus(this.meetingOptions.meetingId)
                      .then((status) {
                    print("Meeting Status Polling: " + status[0] + " - " + status[1]);
                  });
                });
              });
            }

          }).catchError((error) {
            print(error);
          });
        })
      ),
    );
  }
}

Start a Meeting - Non-login user

You need to obtain the User Token and Zoom Access Token (ZAK) in order to start meetings for a user. They are unique authentication tokens required to host a meeting on behalf of another user.

Example of getting User Token and ZAK here

More info about the User Token and Zoom Access Token here.

In order to run the example app:

  1. Create an JWT app to get a JWT token using the instructions here.

  2. Create a meeting (with a host of course) then get the Meeting ID (can be a 10 or 11-digit number).

  3. Use the Zoom API to obtain the tokens from the host.

    # User token
    curl --location --request GET 'https://api.zoom.us/v2/users/<zoom_user_id>/token?type=token&access_token=<jwt_token>'
    
    # Access token
    curl --location --request GET 'https://api.zoom.us/v2/users/<zoom_user_id>/token?type=zak&access_token=<jwt_token>'

    Note for obtaining tokens:

    The user must log in using their email and password to get the user token. If a user signed into Zoom using Google or Facebook, a null value will be returned for the token.

  4. Pass the meeting ID and tokens to the plugin.

class StartMeetingWidget extends StatelessWidget {

  ZoomOptions zoomOptions;
  ZoomMeetingOptions meetingOptions;

  Timer timer;

  StartMeetingWidget({Key key, meetingId}) : super(key: key) {
    this.zoomOptions = new ZoomOptions(
      domain: "zoom.us",
      appKey: "appKey", // Replace with with key got from the Zoom Marketplace
      appSecret: "appSecret", // Replace with with key got from the Zoom Marketplace
    );
    this.meetingOptions = new ZoomMeetingOptions(
        userId: '<zoom_user_id>', // Replace with the user email or Zoom user ID
        displayName: 'Example display Name',
        meetingId: meetingId, 
        zoomAccessToken: "<zak_token>", // Replace with the token obtained from the Zoom API
        zoomToken: "<zoom_token>", // Replace with the token obtained from the Zoom API
        disableDialIn: "true",
        disableDrive: "true",
        disableInvite: "true",
        disableShare: "true",
        noAudio: "false",
        noDisconnectAudio: "false"
    );
  }

  bool _isMeetingEnded(String status) {
    var result = false;

    if (Platform.isAndroid)
      result = status == "MEETING_STATUS_DISCONNECTING" || status == "MEETING_STATUS_FAILED";
    else
      result = status == "MEETING_STATUS_IDLE";

    return result;
  }

  @override
  Widget build(BuildContext context) {
    // Use the Todo to create the UI.
    return Scaffold(
      appBar: AppBar(
          title: Text('Loading meeting '),
      ),
      body: Padding(
        padding: EdgeInsets.all(16.0),
        child: ZoomView(onViewCreated: (controller) {

          print("Created the view");

          controller.initZoom(this.zoomOptions)
              .then((results) {

            print("initialised");
            print(results);

            if(results[0] == 0) {

              controller.zoomStatusEvents.listen((status) {
                print("Meeting Status Stream: " + status[0] + " - " + status[1]);
                if (_isMeetingEnded(status[0])) {
                  Navigator.pop(context);
                  timer?.cancel();
                }
              });

              print("listen on event channel");

              controller.startMeeting(this.meetingOptions)
                  .then((joinMeetingResult) {

                timer = Timer.periodic(new Duration(seconds: 2), (timer) {
                  controller.meetingStatus(this.meetingOptions.meetingId)
                      .then((status) {
                    print("Meeting Status Polling: " + status[0] + " - " + status[1]);
                  });
                });

              });
            }

          }).catchError((error) {

            print("Error");
            print(error);
          });
        })
      ),
    );
  }
}

flutter_zoom_plugin's People

Contributors

dzungtngo avatar gfiury avatar kevinbayes avatar shimibaliti avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

flutter_zoom_plugin's Issues

Handle navigation on LeaveMeeting

What do I do to respond to the event when the user clicked "Leave meeting" inside the zoom chat? or otherwise when the chat is closed?

How to build on emulator iOS, ignore this plugin

Hi,
I had build and run on iOS real device, both android emulator and real device.
But I want test my app on iOS emulator for other function in app, and if I had embed this plugin, I can not build on emulator.
Anybody I know the way to ignore if I build on emulator iOS, and still run if I move to real device or Android.
It important with me, really thank too much if anybody can help!

Direct local .aar file dependencies are not supported when building an AAR.

Your Environment

  • Plugin version: 0.08
  • Platform: Android
  • OS version: Microsoft Windows [Version 10.0.19041.508]
  • Flutter info (flutter doctor):
    Doctor summary (to see all details, run flutter doctor -v):
    [√] Flutter (Channel stable, 1.22.0, on Microsoft Windows [Version 10.0.19041.508], locale en-US)

[√] Android toolchain - develop for Android devices (Android SDK version 30.0.0)
[√] Android Studio (version 4.0)
[√] Connected device (1 available)

• No issues found!

  • Plugin config:
  flutter_zoom_plugin:
    git:
      url: git://github.com/decodedhealth/flutter_zoom_plugin.git
      # Android
      ref: 0.0.8
      # iOS
      #ref: master

Expected Behavior

Application runs

Actual Behavior

Launching lib\main.dart on Android SDK built for x86 in debug mode...
Running Gradle task 'assembleDebug'...
Note: D:\Multiverse_Projects\Flutter\flutter\.pub-cache\hosted\pub.dartlang.org\flutter_secure_storage-3.3.4\android\src\main\java\com\it_nomads\fluttersecurestorage\ciphers\RSACipher18Implementation.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
Note: D:\Multiverse_Projects\Flutter\flutter\.pub-cache\hosted\pub.dartlang.org\in_app_purchase-0.3.4+9\android\src\main\java\io\flutter\plugins\inapppurchase\MethodCallHandlerImpl.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: D:\Multiverse_Projects\Flutter\flutter\.pub-cache\hosted\pub.dartlang.org\webview_flutter-1.0.0\android\src\main\java\io\flutter\plugins\webviewflutter\FlutterWebView.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':flutter_zoom_plugin:bundleDebugAar'.
> Direct local .aar file dependencies are not supported when building an AAR. The resulting AAR would be broken because the classes and Android resources from any local .aar file dependencies would not be packaged in the resulting AAR. Previous versions of the Android Gradle Plugin produce broken AARs in this case too (despite not throwing this error). The following direct local .aar file dependencies of the :flutter_zoom_plugin project caused this error: D:\Multiverse_Projects\Flutter\flutter\.pub-cache\git\flutter_zoom_plugin-88d1fa2685f28d67410d46e094461a0a030d3192\android\libs\commonlib\commonlib.aar, D:\Multiverse_Projects\Flutter\flutter\.pub-cache\git\flutter_zoom_plugin-88d1fa2685f28d67410d46e094461a0a030d3192\android\libs\mobilertc\mobilertc.aar

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 2m 45s
Exception: Gradle task assembleDebug failed with exit code 1

Steps to Reproduce

  1. add the dependency in pubspec (0.0.8)
  2. flutter run

Unable to run example app

Your Environment

  • Plugin version: master branch
  • Platform: iOS
  • OS version: mac Catalina
  • Device manufacturer / model:
    iPhone 7
  • Flutter info (flutter doctor):
    Doctor summary (to see all details, run flutter doctor -v):
    [✓] Flutter (Channel stable, v1.17.4, on Mac OS X 10.15.3 19D76, locale en-US)

[✓] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
[✓] Xcode - develop for iOS and macOS (Xcode 11.5)
[✓] Android Studio (version 3.6)
[!] IntelliJ IDEA Ultimate Edition (version 2020.1.2)
✗ Flutter plugin not installed; this adds Flutter specific functionality.
✗ Dart plugin not installed; this adds Dart specific functionality.
[✓] VS Code (version 1.38.1)
[✓] Connected device (1 available)

! Doctor found issues in 1 category.

I have both flutter and Dart pluggings installed

  • Plugin config:

Expected Behavior

Zoom meeting

Actual Behavior

Getting a blank page

Steps to Reproduce

  1. Zoom market place created jwt app
  2. updated app key and app secret user id in meeting_screen.dart
  3. start the app
  4. Sart a meeting on my desktop
  5. Add meeting id and meeting password in flutter app join meeting page
  6. Loading meeting come with blank screen

Context

Trying to run example app

Debug logs

Logs
2020-08-14 21:38:29.914597-0400 Runner[1800:551434] Metal API Validation Enabled
2020-08-14 21:38:30.138918-0400 Runner[1800:551626] flutter: Observatory listening on http://127.0.0.1:49341/YGbg9af2QtY=/
2020-08-14 21:38:56.768275-0400 Runner[1800:551691] [general] Connection to daemon was invalidated
2020-08-14 21:39:33.289520-0400 Runner[1800:551434] [Snapshotting] Snapshotting a view (0x104ad3870, _UIReplicantView) that has not been rendered at least once requires afterScreenUpdates:YES.
2020-08-14 21:39:48.233843-0400 Runner[1800:551434] [Snapshotting] Snapshotting a view (0x104af8580, _UIReplicantView) that has not been rendered at least once requires afterScreenUpdates:YES.
2020-08-14 21:39:54.852438-0400 Runner[1800:551618] flutter: Created the view
2020-08-14 21:39:55.110450-0400 Runner[1800:551434] old data has cpoied done
2020-08-14 21:39:55.112792-0400 Runner[1800:551434] [logging-persist] cannot open file at line 43353 of [378230ae7f]
2020-08-14 21:39:55.112881-0400 Runner[1800:551434] [logging-persist] os_unix.c:43353: (0) open(/var/mobile/Containers/Data/Application/B1462BC3-656F-42AF-933B-06AB307DC808/Documents/data/zoomus.tmp.db) - Undefined error: 0
2020-08-14 21:39:55.117567-0400 Runner[1800:551434] [logging] table zoom_meet_participants already exists in "create table zoom_meet_participants (itemID integer64, name text, avatar text,snsID text, snsType integer, deviceID text,roleType integer);"
2020-08-14 21:39:55.118294-0400 Runner[1800:551434] [logging] table zoom_kv already exists in "create table zoom_kv (key text, value text, section text);"
2020-08-14 21:39:55.600604-0400 Runner[1800:551618] flutter: initialised
2020-08-14 21:39:55.601270-0400 Runner[1800:551618] flutter: results: [1, 0]
error was 0

minSdkVersion 26

Any particular reason it is set so high? Zoom SDK supports minSdkVersion of 14.

Unhandled Exception: PlatformException(error, java.lang.IllegalStateException: Trying to create a platform view of unregistered type: flutter_zoom_plugin

I cannot run example.

Added:
flutter_zoom_plugin:
git:
url: git://github.com/decodedhealth/flutter_zoom_plugin.git
ref: 0.0.7
to pubspec.yaml at example's folder

Added: proguard.cfg to android folder in example's folder

Launching lib/main.dart on Mi A3 in debug mode...
✓ Built build/app/outputs/apk/debug/app-debug.apk.
W/IInputConnectionWrapper(21329): getTextBeforeCursor on inactive InputConnection
W/IInputConnectionWrapper(21329): getSelectedText on inactive InputConnection
W/IInputConnectionWrapper(21329): getTextAfterCursor on inactive InputConnection
W/IInputConnectionWrapper(21329): beginBatchEdit on inactive InputConnection
W/IInputConnectionWrapper(21329): endBatchEdit on inactive InputConnection
E/flutter (21329): [ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: PlatformException(error, java.lang.IllegalStateException: Trying to create a platform view of unregistered type: flutter_zoom_plugin
E/flutter (21329): at io.flutter.plugin.platform.PlatformViewsController$1.createPlatformView(PlatformViewsController.java:97)
E/flutter (21329): at io.flutter.embedding.engine.systemchannels.PlatformViewsChannel$1.create(PlatformViewsChannel.java:95)
E/flutter (21329): at io.flutter.embedding.engine.systemchannels.PlatformViewsChannel$1.onMethodCall(PlatformViewsChannel.java:59)
E/flutter (21329): at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:226)
E/flutter (21329): at io.flutter.embedding.engine.dart.DartMessenger.handleMessageFromDart(DartMessenger.java:85)
E/flutter (21329): at io.flutter.embedding.engine.FlutterJNI.handlePlatformMessage(FlutterJNI.java:631)
E/flutter (21329): at android.os.MessageQueue.nativePollOnce(Native Method)
E/flutter (21329): at android.os.MessageQueue.next(MessageQueue.java:336)
E/flutter (21329): at android.os.Looper.loop(Looper.java:174)
E/flutter (21329): at android.app.ActivityThread.main(ActivityThread.java:7397)
E/flutter (21329): at java.lang.reflect.Method.invoke(Native Method)
E/flutter (21329): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
E/flutter (21329): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:935)
E/flutter (21329): , null)
�[38;5;244mE/flutter (21329): #0 StandardMethodCodec.decodeEnvelope�[39;49m
�[38;5;244mE/flutter (21329): #1 MethodChannel._invokeMethod�[39;49m
E/flutter (21329):
�[38;5;244mE/flutter (21329): #2 MethodChannel.invokeMethod�[39;49m
�[38;5;244mE/flutter (21329): #3 AndroidViewController._create�[39;49m
�[38;5;244mE/flutter (21329): #4 AndroidViewController.setSize�[39;49m
�[38;5;244mE/flutter (21329): #5 RenderAndroidView._sizePlatformView�[39;49m
�[38;5;244mE/flutter (21329): #6 RenderAndroidView.performResize�[39;49m
�[38;5;244mE/flutter (21329): #7 RenderObject.layout�[39;49m
�[38;5;244mE/flutter (21329): #8 RenderProxyBoxMixin.performLayout�[39;49m
�[38;5;244mE/flutter (21329): #9 RenderObject.layout�[39;49m
�[38;5;244mE/flutter (21329): #10 RenderPadding.performLayout�[39;49m
�[38;5;244mE/flutter (21329): #11 RenderObject.layout�[39;49m
�[38;5;244mE/flutter (21329): #12 MultiChildLayoutDelegate.layoutChild�[39;49m
�[38;5;244mE/flutter (21329): #13 _ScaffoldLayout.performLayout�[39;49m
�[38;5;244mE/flutter (21329): #14 MultiChildLayoutDelegate._callPerformLayout�[39;49m
�[38;5;244mE/flutter (21329): #15 RenderCustomMultiChildLayoutBox.performLayout�[39;49m
�[38;5;244mE/flutter (21329): #16 RenderObject.layout�[39;49m
�[38;5;244mE/flutter (21329): #17 RenderProxyBoxMixin.performLayout�[39;49m
�[38;5;244mE/flutter (21329): #18 RenderObject.layout�[39;49m
�[38;5;244mE/flutter (21329): #19 RenderProxyBoxMixin.performLayout�[39;49m
�[38;5;244mE/flutter (21329): #20 _RenderCustomClip.performLayout�[39;49m
�[38;5;244mE/flutter (21329): #21 RenderObject.layout�[39;49m
�[38;5;244mE/flutter (21329): #22 RenderProxyBoxMixin.performLayout�[39;49m
�[38;5;244mE/flutter (21329): #23 RenderObject.layout�[39;49m
�[38;5;244mE/flutter (21329): #24 RenderProxyBoxMixin.performLayout�[39;49m
�[38;5;244mE/flutter (21329): #25 RenderObject.layout�[39;49m
�[38;5;244mE/flutter (21329): #26 RenderProxyBoxMixin.performLayout�[39;49m
�[38;5;244mE/flutter (21329): #27 RenderObject.layout�[39;49m
�[38;5;244mE/flutter (21329): #28 RenderProxyBoxMixin.performLayout�[39;49m
�[38;5;244mE/flutter (21329): #29 RenderObject.layout�[39;49m
E/flutter (21329): #30 RenderProxyBoxMixin.performLayout (pa
Application finished.
Exited (sigterm)

error building for iOS

This started IMHO with the latest version of the plugin:

Launching lib/main.dart on iPhone 11 Pro Max in debug mode...
Running Xcode build...
Xcode build done.                                           15.3s
Failed to build iOS app
Error output from Xcode build:
↳
    ** BUILD FAILED **


Xcode's output:
↳
    /Users/shaharsol/flutter/flutter/.pub-cache/git/flutter_zoom_plugin-95ebd9a753589aad7a9c983419c694d64376b93f/ios/Classes/SwiftFlutterZoomPlugin.swift:218:15: warning: 'initialize(withDomain:enableLog:bundleResPath:)' is deprecated: Will be deleted in the next release. Please use [[MobileRTC sharedRTC] initialize:context] instead
        MobileRTC.initialize(withDomain: arguments["domain"]!, enableLog: true, bundleResPath: pluginBundlePath)
                  ^
    In file included from /Users/shaharsol/flutter/flutter/.pub-cache/hosted/pub.dartlang.org/uni_links-0.2.0/ios/Classes/UniLinksPlugin.m:1:
    /Users/shaharsol/flutter/flutter/.pub-cache/hosted/pub.dartlang.org/uni_links-0.2.0/ios/Classes/UniLinksPlugin.h:4:4: warning: pointer is missing a nullability type specifier (_Nonnull, _Nullable, or _Null_unspecified) [-Wnullability-completeness]
    + (instancetype)sharedInstance;
       ^
    /Users/shaharsol/flutter/flutter/.pub-cache/hosted/pub.dartlang.org/uni_links-0.2.0/ios/Classes/UniLinksPlugin.h:4:4: note: insert '_Nullable' if the pointer may be null
    + (instancetype)sharedInstance;
       ^
                    _Nullable 
    /Users/shaharsol/flutter/flutter/.pub-cache/hosted/pub.dartlang.org/uni_links-0.2.0/ios/Classes/UniLinksPlugin.h:4:4: note: insert '_Nonnull' if the pointer should never be null
    + (instancetype)sharedInstance;
       ^
                    _Nonnull 
    /Users/shaharsol/flutter/flutter/.pub-cache/hosted/pub.dartlang.org/uni_links-0.2.0/ios/Classes/UniLinksPlugin.h:7:33: warning: block pointer is missing a nullability type specifier (_Nonnull, _Nullable, or _Null_unspecified) [-Wnullability-completeness]
          restorationHandler:(void (^)(NSArray *_Nullable))restorationHandler;
                                    ^
    /Users/shaharsol/flutter/flutter/.pub-cache/hosted/pub.dartlang.org/uni_links-0.2.0/ios/Classes/UniLinksPlugin.h:7:33: note: insert '_Nullable' if the block pointer may be null
          restorationHandler:(void (^)(NSArray *_Nullable))restorationHandler;
                                    ^
                                     _Nullable
    /Users/shaharsol/flutter/flutter/.pub-cache/hosted/pub.dartlang.org/uni_links-0.2.0/ios/Classes/UniLinksPlugin.h:7:33: note: insert '_Nonnull' if the block pointer should never be null
          restorationHandler:(void (^)(NSArray *_Nullable))restorationHandler;
                                    ^
                                     _Nonnull
    2 warnings generated.
    ld: warning: ignoring file /Users/shaharsol/flutter/flutter/.pub-cache/git/flutter_zoom_plugin-95ebd9a753589aad7a9c983419c694d64376b93f/ios/MobileRTC.framework/MobileRTC, missing required architecture x86_64 in file /Users/shaharsol/flutter/flutter/.pub-cache/git/flutter_zoom_plugin-95ebd9a753589aad7a9c983419c694d64376b93f/ios/MobileRTC.framework/MobileRTC (2 slices)
    Undefined symbols for architecture x86_64:
      "_OBJC_CLASS_$_MobileRTC", referenced from:
          objc-class-ref in SwiftFlutterZoomPlugin.o
      "_kMeetingParam_Username", referenced from:
          flutter_zoom_plugin.ZoomView.joinMeeting(call: __C.FlutterMethodCall, result: (Any?) -> ()) -> () in SwiftFlutterZoomPlugin.o
      "_kMeetingParam_MeetingNumber", referenced from:
          flutter_zoom_plugin.ZoomView.joinMeeting(call: __C.FlutterMethodCall, result: (Any?) -> ()) -> () in SwiftFlutterZoomPlugin.o
      "_kMeetingParam_MeetingPassword", referenced from:
          flutter_zoom_plugin.ZoomView.joinMeeting(call: __C.FlutterMethodCall, result: (Any?) -> ()) -> () in SwiftFlutterZoomPlugin.o
    ld: symbol(s) not found for architecture x86_64
    clang: error: linker command failed with exit code 1 (use -v to see invocation)
    note: Using new build systemnote: Planning buildnote: Constructing build descriptionwarning: Capabilities for Signing & Capabilities may not function correctly because its entitlements use a placeholder team ID. To resolve this, select a development team in the Runner editor. (in target 'Runner' from project 'Runner')

Could not build the application for the simulator.
Error launching application on iPhone 11 Pro Max.

Zoom meeting is disappear when click the icon on screen

Your Environment

  • Plugin version: master
  • Platform: Android
  • OS version: android9.0
  • Device manufacturer / model: pixel 3
  • Flutter info (flutter doctor):
    Doctor summary (to see all details, run flutter doctor -v):
    [✓] Flutter (Channel stable, 1.22.5, on macOS 11.1 20C69 darwin-arm, locale zh-Hans-CN)

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
[✓] Xcode - develop for iOS and macOS (Xcode 12.3)
[!] Android Studio (version 4.1)
✗ Flutter plugin not installed; this adds Flutter specific functionality.
✗ Dart plugin not installed; this adds Dart specific functionality.
[✓] VS Code (version 1.52.1)
[!] Connected device
! No devices available

Expected Behavior

When start a zoom meeting, press the HOME button, click the app icon on the screen, resume the zoom meeting.

Actual Behavior

Press the HOME button, cilick the icon, the zoom meeting activity is disappeared. It's in the notifiction bar.

Steps to Reproduce

  1. When start a zoom meeting, press the HOME button
  2. click the app icon on the screen
  3. the zoom meeting activity is disappeared. It's in the notifiction bar.

How to diable Meeting registration on joining meeting

@kevinbayes @gfiury @DzungTNgo @ShimiBaliti

Hello i am using the plugin and its works as gem to me but i have problem i am facing the issue when joining the meeting i get a pop up for registration which i don't want user to get registered ,how can i handle this background please suggest me how to implement this i am stuck at this .

Thanks in advance
Jagan PS

WhatsApp Image 2021-01-12 at 10 29 15 AM
i have attached the screen shot for your references please help me to bypass this problem

Please Add Start Call Feature

In this current plugin, we can only join an ongoing call. Is there any way to start a meeting as host in this current version.

HELP, dont working on ANDROID release mode

  • When I make a release build with zoom in on the app, it crashes the application when opens a zoom widget.
    (I believe it is happening when generated in release mode.)

Flutter Web Support

Describe the solution you'd like
Add web support for flutter. This will allow users to also use the web to join meeting.

After pressing join button,Still it is showing preparing meeting

Flutter Doctor Version:
[√] Flutter (Channel stable, v1.12.13+hotfix.9, on Microsoft Windows [Version 10.0.19041.207], locale en-IN)
[!] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
X Android license status unknown.
Try re-installing or updating your Android SDK Manager.
See https://developer.android.com/studio/#downloads or visit https://flutter.dev/setup/#android-setup for detailed instructions.
[√] Android Studio (version 3.6)
[√] VS Code (version 1.44.2)
[!] Connected device
! No devices available

! Doctor found issues in 2 categories.

Steps to reproduce:
After I press the join button in the sample,
The ui waits in preparing meeting
image

It is showing More than one file was found with OS independent path 'res/drawable/zm_next_arrow.xml after debugging

Your Environment

  • Plugin version:
  • Platform: Android
  • OS version: Android API 28
  • Device manufacturer / model: Android Emulator
  • Flutter info (flutter doctor):
  • Plugin config:
    flutter_zoom_plugin:
    git:
    url: git://github.com/decodedhealth/flutter_zoom_plugin.git
    ref: master
FAILURE: Build failed with an exception.
[   +3 ms] * What went wrong:
[   +1 ms] Execution failed for task ':flutter_zoom_plugin:mergeDebugJavaResource'.
[   +2 ms] > A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade
[   +1 ms]    > More than one file was found with OS independent path 'res/drawable/zm_next_arrow.xml'

Expected Behavior

I want to be able to debug in my emulator

Actual Behavior

It is showing this error

Steps to Reproduce

  1. Enter the dependency in pubspec.yaml
  2. Change the minsdk to 21
  3. Add the zoom proguard.cfg
  4. flutter run -v

Context

The thing I want to do is just making it abe to debug

Debug logs

Logs
[   +4 ms] FAILURE: Build failed with an exception.
[   +3 ms] * What went wrong:
[   +1 ms] Execution failed for task ':flutter_zoom_plugin:mergeDebugJavaResource'.
[   +2 ms] > A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade
[   +1 ms]    > More than one file was found with OS independent path 'res/drawable/zm_next_arrow.xml'
[   +1 ms] * Try:
[   +1 ms] Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full     
insights.
[   +1 ms] * Get more help at https://help.gradle.org
[   +1 ms] BUILD FAILED in 2m 16s

Crash in iOS

I build for iOS but crashed.
Screen Shot 2020-04-12 at 20 09 03

dyld`__abort_with_payload:
    0x10256f2a4 <+0>:  mov    x16, #0x209
    0x10256f2a8 <+4>:  svc    #0x80
->  0x10256f2ac <+8>:  b.lo   0x10256f2c8               ; <+36>
    0x10256f2b0 <+12>: stp    x29, x30, [sp, #-0x10]!
    0x10256f2b4 <+16>: mov    x29, sp
    0x10256f2b8 <+20>: bl     0x10256d7d8               ; cerror_nocancel
    0x10256f2bc <+24>: mov    sp, x29
    0x10256f2c0 <+28>: ldp    x29, x30, [sp], #0x10
    0x10256f2c4 <+32>: ret    
    0x10256f2c8 <+36>: ret    

Error on android emulator

Can you figure out what's wrong? I'm using an emulator with API version 29, maybe that's too high?

E/flutter ( 4747): [ERROR:flutter/shell/platform/android/platform_view_android_jni.cc(39)] java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/v4/app/FragmentActivity;
E/flutter ( 4747): 	at com.zipow.videobox.ptapp.PTUI.getInstance(Unknown Source:0)
E/flutter ( 4747): 	at us.zoom.sdk.ZoomSDK.<init>(ZoomSDK.java:150)
E/flutter ( 4747): 	at us.zoom.sdk.ZoomSDK.getInstance(ZoomSDK.java:162)
E/flutter ( 4747): 	at com.decodedhealth.flutter_zoom_plugin.ZoomView.init(ZoomView.java:71)
E/flutter ( 4747): 	at com.decodedhealth.flutter_zoom_plugin.ZoomView.onMethodCall(ZoomView.java:53)
E/flutter ( 4747): 	at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:222)
E/flutter ( 4747): 	at io.flutter.embedding.engine.dart.DartMessenger.handleMessageFromDart(DartMessenger.java:96)
E/flutter ( 4747): 	at io.flutter.embedding.engine.FlutterJNI.handlePlatformMessage(FlutterJNI.java:656)
E/flutter ( 4747): 	at android.os.MessageQueue.nativePollOnce(Native Method)
E/flutter ( 4747): 	at android.os.MessageQueue.next(MessageQueue.java:336)
E/flutter ( 4747): 	at android.os.Looper.loop(Looper.java:174)
E/flutter ( 4747): 	at android.app.ActivityThread.main(ActivityThread.java:7343)
E/flutter ( 4747): 	at java.lang.reflect.Method.invoke(Native Method)
E/flutter ( 4747): 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
E/flutter ( 4747): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:933)
E/flutter ( 4747): Caused by: java.lang.ClassNotFoundException: Didn't find class "android.support.v4.app.FragmentActivity" on path: DexPathList[[zip file "/data/app/com.sanghaline-wGb6-s9fAAD1NThl4xNR_g==/base.apk"],nativeLibraryDirectories=[/data/app/com.sanghaline-wGb6-s9fAAD1NThl4xNR_g==/lib/x86, /data/app/com.sanghaline-wGb6-s9fAAD1NThl4xNR_g==/base.apk!/lib/x86, /system/lib, /system/product/lib]]
E/flutter ( 4747): 	at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:196)
E/flutter ( 4747): 	at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
E/flutter ( 4747): 	at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
E/flutter ( 4747): 	... 15 more
E/flutter ( 4747): 

Can't start video on iphone simulator

While can't get it to work on Android #4 , It did partly work on iOS. It just won't let me start the video. Clicking the button changes nothing. Should I config something? Maybe the simulator needs special permissions?

Screen Shot 2019-11-03 at 12 42 48

How to bypass registration form during joining the zoom meeting


name: Bug report
about: Create a report to help us improve
title: how to bypass the registration form on joining the meeting
labels: ''
assignees: ''


Your Environment

  • Plugin version:0.0.8
  • Platform: Android
  • OS version:
  • Device manufacturer / model:
  • Flutter info (flutter doctor):
  • Plugin config:
this.meetingOptions = new ZoomMeetingOptions(
        userId: userid,
        displayName: username,
        meetingId: meetingId,
        meetingPassword: meetingPwd,
        disableDialIn: "true",
        disableDrive: "true",
        disableInvite: "true",
        disableShare: "true",
        noAudio: "false",
        noDisconnectAudio: "false");

Expected Behavior

should not generate the user form on joining the zoom meeting

Actual Behavior

asks the user to enter username and email

Steps to Reproduce

1.no_webinar_register_dialog:true,

Context

i was trying to bypass the registration from the user joining the meeting

Debug logs

Logs
PASTE_YOUR_LOGS_HERE

Not working on iOS simulator?

Got project to build and launched the example, but after entering a valid meeting id with no password, just get a blank "Loading meeting" Screen. Getting this in Android Studio debug:

flutter: Created the view
flutter: initialised
flutter: [1, 0]
[VERBOSE-2:platform_view_layer.cc(22)] Trying to embed a platform view but the PrerollContext does not support embedding
[VERBOSE-2:platform_view_layer.cc(31)] Trying to embed a platform view but the PaintContext does not support embedding
(repeated a dozen times)

ERROR[Android] Sdk Location not found

Your Environment

  • Plugin version:
  • Platform: iOS or Android
  • OS version:
  • Device manufacturer / model:
  • Flutter info (flutter doctor):
  • Plugin config:
[✓] Flutter (Channel stable, v1.12.13+hotfix.9, on Mac OS X 10.15.3 19D76, locale en-ID)
 
[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
[✓] Xcode - develop for iOS and macOS (Xcode 11.5)
[✓] Android Studio (version 4.0)
[✓] VS Code (version 1.41.1)
[✓] Connected device (2 available)

• No issues found!

Debug logs

Logs
FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:processDebugResources'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade
   > Android resource linking failed
     /Users/milzlaps/.gradle/caches/transforms-2/files-2.1/57706c5fc98d3a3ce35c81f0d5d3c506/jetified-mobilertc/AndroidManifest.xml:129:9-133:51: AAPT: error: attribute android:foregroundServiceType not found.


* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 10s
The built failed likely due to AndroidX incompatibilities in a plugin. The tool is about to try using Jetfier to solve the incompatibility.
Building plugin flutter_zoom_plugin...
Running Gradle task 'assembleAarRelease'...

Finished with error: The plugin flutter_zoom_plugin could not be built due to the issue above.

FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring root project 'flutter_zoom_plugin'.
> SDK location not found. Define location with an ANDROID_SDK_ROOT environment variable or by setting the sdk.dir path in your project's local properties file at '/Users/milzlaps/Documents/flutter/.pub-cache/git/flutter_zoom_plugin-1647c9e48d2f31da434a777037d949ed3f3391ff/android/local.properties'.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 1s

Failed to initialize Zoom SDK

Hello bro.
I've problem I cant join meeting, I use "example" code but it show this error.
"Failed to initialize Zoom SDK"

I use SDK zoom app but I can't know it's ok or which type i must use, and I don't know from where I get domian and userId.

Can you explain for me more ?

Thanks bro.

App crashes on Android when joining a meeting

Your Environment

  • Plugin version: 0.0.7
  • Platform: Android
  • OS version: 6.0
  • Device manufacturer / model: Huawei ALE-L02
  • Flutter info (flutter doctor):
    [✓] Flutter (Channel stable, v1.17.2, on Mac OS X 10.15.4 19E266, locale en-ZA)

[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
[✓] Xcode - develop for iOS and macOS (Xcode 11.3.1)
[✓] Android Studio (version 3.6)
[✓] Connected device (3 available)

• No issues found!

  • Plugin config:
NOT APPLICABLE (Using example code)

Expected Behavior

Zoom widget to work on both iOS and Android

Actual Behavior

On iOS the zoom widget opens and works perfectly. On Android it works in debug mode, but when I build an App Bundle file and publish to the store, it crashes unexpectedly.

Steps to Reproduce

  1. Build app bundle
  2. Upload to Google play store
  3. Download on device
  4. Try to join Zoom meeting

Context

Join a Zoom meeting

Debug logs

Logs
06-18 12:00:35.428 13183-13205/? I/flutter: meetingid - 78672790317
06-18 12:00:35.428 13183-13205/? I/flutter: meetingpassword - 5YjNwP
06-18 12:00:35.465 13183-13183/? W/ResourceType: ResTable_typeSpec entry count inconsistent: given 87, previously 3110
06-18 12:00:35.465 13183-13183/? W/ResourceType: ResTable_typeSpec entry count inconsistent: given 1854, previously 1850
06-18 12:00:35.465 13183-13183/? W/ResourceType: ResTable_typeSpec entry count inconsistent: given 157, previously 852
06-18 12:00:35.468 2392-2392/? I/[Gralloc]: alloc w[656] h[468] format[1] usage[2304]
06-18 12:00:35.469 2392-2392/? I/[Gralloc]: alloc succ handle[0x55a6b5fe90] stride[656]
06-18 12:00:35.491 13183-13183/? I/HwSecImmHelper: mSecurityInputMethodService is null
06-18 12:00:35.503 2392-2392/? I/[Gralloc]: alloc w[656] h[468] format[1] usage[3842]
06-18 12:00:35.505 2392-2392/? I/[Gralloc]: alloc succ handle[0x55a6b60460] stride[656]
06-18 12:00:35.505 13183-13205/? I/flutter: Created the view
06-18 12:00:35.505 13183-13183/? I/HwSecImmHelper: mSecurityInputMethodService is null
06-18 12:00:35.514 3863-4464/? W/PGApi_client: recv actoionId = 10006, action = com.huawei.pgmng.PGAction@fcc075f actionId =10006 pkg =null extend1 =1102 extend2 = flag =2 type =1
06-18 12:00:35.533 2392-2500/? I/[Gralloc]: alloc w[720] h[48] format[1] usage[3842]
06-18 12:00:35.533 2392-2500/? I/[Gralloc]: alloc succ handle[0x55a6b60e10] stride[720]
06-18 12:00:35.534 3497-3497/? I/HwSecImmHelper: mSecurityInputMethodService is null
06-18 12:00:35.534 3497-3497/? I/HwSecImmHelper: mSecurityInputMethodService is null
06-18 12:00:35.534 3497-3497/? I/HwSecImmHelper: mSecurityInputMethodService is null
06-18 12:00:35.535 3497-3497/? I/HwSecImmHelper: mSecurityInputMethodService is null
06-18 12:00:35.536 3497-3497/? I/HwSecImmHelper: mSecurityInputMethodService is null
06-18 12:00:35.536 3497-3497/? I/HwSecImmHelper: mSecurityInputMethodService is null
06-18 12:00:35.561 13183-13183/? E/flutter: [ERROR:flutter/shell/platform/android/platform_view_android_jni.cc(39)] java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/me.reddi.core-1/base.apk", zip file "/data/app/me.reddi.core-1/split_config.arm64_v8a.apk", zip file "/data/app/me.reddi.core-1/split_config.en.apk", zip file "/data/app/me.reddi.core-1/split_config.xhdpi.apk"],nativeLibraryDirectories=[/data/app/me.reddi.core-1/lib/arm64, /data/app/me.reddi.core-1/base.apk!/lib/arm64-v8a, /data/app/me.reddi.core-1/split_config.arm64_v8a.apk!/lib/arm64-v8a, /data/app/me.reddi.core-1/split_config.en.apk!/lib/arm64-v8a, /data/app/me.reddi.core-1/split_config.xhdpi.apk!/lib/arm64-v8a, /vendor/lib64, /system/lib64]]] couldn't find "libzoom_stlport.so"
        at java.lang.Runtime.loadLibrary(Runtime.java:379)
        at java.lang.System.loadLibrary(System.java:1086)
        at com.zipow.cmmlib.AppContext.<clinit>()
        at i.b.a.p.a()
        at c.b.a.c.b()
        at c.b.a.c.a()
        at e.a.c.a.j$a.a()
        at io.flutter.embedding.engine.e.b.a()
        at io.flutter.embedding.engine.FlutterJNI.handlePlatformMessage()
        at android.os.MessageQueue.nativePollOnce(Native Method)
        at android.os.MessageQueue.next(MessageQueue.java:330)
        at android.os.Looper.loop(Looper.java:137)
        at android.app.ActivityThread.main(ActivityThread.java:5621)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:794)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:684)
06-18 12:00:35.561 13183-13183/? A/flutter: [FATAL:flutter/shell/platform/android/platform_view_android_jni.cc(76)] Check failed: CheckException(env). 
06-18 12:00:35.563 3863-26647/? I/PgedBinderListener: kstate callback type:8 value1=13183 value2=KILLED
06-18 12:00:35.563 3863-4425/? I/ash: removeProcessDependency pid:13183
06-18 12:00:35.577 2392-2392/? E/HAL: load: id=gralloc != hmi->id=gralloc
06-18 12:00:35.711 3145-3392/? W/AlarmManager: WAKEUP alarm trigger action = com.google.android.gms.gcm.HEARTBEAT_ALARM elapsed = 11185046
06-18 12:00:35.713 3145-3159/? I/SendBroadcastPermission: action:android.os.action.POWER_SAVE_TEMP_WHITELIST_CHANGED, mPermissionType:0
06-18 12:00:35.923 2406-2406/? E/DEBUG: AM write failed: Broken pipe
06-18 12:00:35.997 3145-3145/? I/SendBroadcastPermission: action:android.intent.action.DROPBOX_ENTRY_ADDED, mPermissionType:0
06-18 12:00:35.997 2742-3075/? I/logserver: handle_logfile_events, Object Path:/data/system/dropbox/, mask=0x00000080
06-18 12:00:35.997 2742-3075/? I/logserver: process_one_event, event->len=48, [email protected]
06-18 12:00:35.997 2742-3075/? E/logserver: process_one_event, can not find this event([email protected])
06-18 12:00:35.997 2742-3075/? I/logserver: clean_cur_cache:999, system(rm -r /data/log/logcache/-147396304/* > /dev/null 2>&1)
06-18 12:00:36.019 2742-3075/? I/logserver: handle_logfile_events, Object Path:/data/system/dropbox/, mask=0x00000080
06-18 12:00:36.019 2742-3075/? I/logserver: process_one_event, event->len=48, [email protected]
06-18 12:00:36.019 2742-3075/? I/logserver: find_first_match: find match, plogs(type=1, pfile=/data/system/dropbox/, match=TOMBSTONE)
06-18 12:00:36.019 2742-3075/? I/logserver: is_only_tombstone, tombstone type force close.
06-18 12:00:36.026 2742-3075/? I/logserver: is_all_ready, any file is ready in non-keyfile exception.
06-18 12:00:36.026 2742-3075/? I/logserver: find_correspond_tombstone, tombs=/data/tombstones/tombstone_08
06-18 12:00:36.026 2742-3075/? I/logserver: extract_appname, forward search, appname=me.reddi.core
06-18 12:00:36.026 2742-3075/? I/logserver: is_only_tombstone, tombstone type force close.
06-18 12:00:36.026 2742-3075/? I/logserver: archive_and_send, only tombstone.
06-18 12:00:36.026 2742-3075/? I/logserver: get_fault_appname, appname=me.reddi.core
06-18 12:00:36.026 2742-3075/? I/logserver: archive_and_send, pos=0, type=crash, output=20200618120036_tombstone
06-18 12:00:36.026 2742-3075/? I/logserver: ---copy_match_files enter!!--
06-18 12:00:36.026 2742-3075/? I/logserver: [copy_match_files,864]: copy [/data/system/dropbox/[email protected]] to [/data/log/logcache/-147396304/[email protected]]
06-18 12:00:36.026 2742-3075/? I/logserver: get_fault_appname, appname=me.reddi.core
06-18 12:00:36.026 2742-3075/? I/logserver: handle_archive_exception, BASIC_MODE
06-18 12:00:36.027 2742-3075/? I/logserver: remove_last_modify_file, into 1 times, file_dir:
06-18 12:00:36.027 2742-3075/? I/logserver: remove_last_modify_file, into 1 times, file_dir:
06-18 12:00:36.027 2742-3075/? I/logserver: get_disk_available_size, Disk_available = 5099376640 B = 4863 MB
06-18 12:00:36.027 2742-3075/? I/logserver: pack_files, output_path is /data/log/unzip.
06-18 12:00:36.027 2742-3075/? I/logserver: move_input_files, create dir [/data/log/unzip/ALE-L02_ALE-L02C190B584_0000000000_20200618120036_tombstone]
06-18 12:00:36.028 2742-3075/? I/logserver: handle_archive_exception, into set notify_type
06-18 12:00:36.028 2742-3075/? I/logserver: get_notify_mode, 1
06-18 12:00:36.029 2742-3075/? I/logserver: Process 3075 opened FIFO(12) for O_WRONLY
06-18 12:00:36.029 2742-3075/? I/logserver: notify_logcontrol, 3075 sent /data/log/unzip/ALE-L02_ALE-L02C190B584_0000000000_20200618120036_tombstone 
06-18 12:00:36.029 2742-2742/? I/logserver: process_event
06-18 12:00:36.029 2742-2742/? I/logserver: handle_fifo_msg, read res = 460, client pid = 3075, command = send log, data=/data/log/unzip/ALE-L02_ALE-L02C190B584_0000000000_20200618120036_tombstone
06-18 12:00:36.029 2742-2742/? I/logserver: handle_fifo_msg, 3075 sent /data/log/unzip/ALE-L02_ALE-L02C190B584_0000000000_20200618120036_tombstone 
06-18 12:00:36.029 2742-3074/? I/logserver: thread_logcontrol: /data/log/logcontrol has changed.
06-18 12:00:36.029 2742-3075/? I/logserver: check_dir_size, dir[/data/log/coredump/] doesn't exist
06-18 12:00:36.029 2742-3075/? I/logserver: clean_cur_cache:999, system(rm -r /data/log/logcache/-147396304/* > /dev/null 2>&1)
06-18 12:00:36.029 2742-3074/? I/logserver: handle_notify_event, send msg [submit:trigger=0,bugtype=12,modulename=me.reddi.core,level=1,testtype=NORMAL,path=/data/log/unzip/ALE-L02_ALE-L02C190B584_0000000000_20200618120036_tombstone,mode=1;]
06-18 12:00:36.029 2742-3074/? I/logserver: send_to_client, send to (9) res = 165
06-18 12:00:36.075 3145-3398/? W/InputDispatcher: channel 'bc5f157 me.reddi.core/me.reddi.coreapp.MainActivity (server)' ~ Consumer closed input channel or an error occurred.  events=0x9
06-18 12:00:36.075 3145-3398/? E/InputDispatcher: channel 'bc5f157 me.reddi.core/me.reddi.coreapp.MainActivity (server)' ~ Channel is unrecoverably broken and will be disposed!
06-18 12:00:36.075 3145-3398/? W/InputDispatcher: channel '9d1f5bc me.reddi.core/me.reddi.coreapp.MainActivity (server)' ~ Consumer closed input channel or an error occurred.  events=0x9
06-18 12:00:36.075 3145-3398/? E/InputDispatcher: channel '9d1f5bc me.reddi.core/me.reddi.coreapp.MainActivity (server)' ~ Channel is unrecoverably broken and will be disposed!
06-18 12:00:36.076 2420-2420/? I/Zygote: Process 13183 exited due to signal (6)
06-18 12:00:36.076 2392-3171/? I/[Gralloc]: alloc w[240] h[428] format[1] usage[819]
06-18 12:00:36.077 2392-3171/? I/[Gralloc]: alloc succ handle[0x55a6b6a950] stride[240]
06-18 12:00:36.078 2392-2392/? E/HAL: load: id=gralloc != hmi->id=gralloc
06-18 12:00:36.088 2392-2392/? E/libEGL: eglDestroySurface: native_window_api_disconnect (win=0x55a6af5540) failed (0xffffffe0)
06-18 12:00:36.088 2392-2392/? W/libEGL: EGLNativeWindowType 0x55a6af5540 disconnect failed
06-18 12:00:36.089 3145-3521/? W/InputDispatcher: Attempted to unregister already unregistered input channel 'bc5f157 me.reddi.core/me.reddi.coreapp.MainActivity (server)'
06-18 12:00:36.098 3145-3940/? W/InputDispatcher: Attempted to unregister already unregistered input channel '9d1f5bc me.reddi.core/me.reddi.coreapp.MainActivity (server)'
06-18 12:00:36.102 3863-4464/? W/PGApi_client: recv actoionId = 10010, action = com.huawei.pgmng.PGAction@69845ac actionId =10010 pkg =com.huawei.android.launcher extend1 =1102 extend2 = flag =3 type =1
06-18 12:00:36.102 3863-4464/? W/PGMiddleWare: in handleAction method, action = 10010
06-18 12:00:36.103 3863-4464/? W/PGMiddleWare: in handleAction, invoke client = com.huawei.pgmng.middleware.AudioEffectLowPowerImpl@d1c5389, action = com.huawei.pgmng.PGAction@69845ac actionId =10010 pkg =com.huawei.android.launcher extend1 =1102 extend2 = flag =3 type =1
06-18 12:00:36.103 2390-2390/? E/lowmemorykiller: Error opening /proc/13183/oom_score_adj; errno=2
06-18 12:00:36.109 3145-3145/? I/SendBroadcastPermission: action:android.intent.action.DROPBOX_ENTRY_ADDED, mPermissionType:0
06-18 12:00:36.121 3563-4140/? I/HwSystemManager: NotificationGuideService:handle MSG_ACTIVIY_FOREGROUND, uid:10052
06-18 12:00:36.129 3919-3919/? I/HwLauncher: Launcher onStart()
06-18 12:00:36.129 3919-3919/? I/HwLauncher: Launcher dynamicIconsRegister
06-18 12:00:36.130 3919-3919/? I/HwLauncher: DynamicUpdater registerReceiver
06-18 12:00:36.136 3145-3156/? E/HsmCoreServiceImpl: onTransact in code is: 102
06-18 12:00:36.136 3145-3156/? I/MediaProcessHandler: processOp opType: 1, uid: 10174, pid: 13183
06-18 12:00:36.136 3145-3156/? W/MediaProcessHandler: remove target not exist, maybe the UI process: uid: 10174, pid: 13183
06-18 12:00:36.155 3919-3919/? I/HwLauncher: DynamicUpdater call updateFolder
06-18 12:00:36.157 3919-3919/? I/HwLauncher: DynamicIcon onResume  isvisible = true   mAttachedToWindow:false    mWindowVisible:falsecom.android.deskclock
06-18 12:00:36.157 3919-3919/? I/HwLauncher: DynamicUpdater registerReceiver
06-18 12:00:36.159 3919-3979/? E/HwLauncher: SettingsEx , no such field.
06-18 12:00:36.160 3919-3979/? W/HwLauncher: Clock getDataFormat the getSystemString failed.
06-18 12:00:36.162 3919-3979/? I/HwLauncher: DynamicIconData , getDrawableForDynamic begin, pkg = com.android.deskclock, picName = deskclock_bg
06-18 12:00:36.163 3919-3979/? I/HwLauncher: DynamicIconData , getDrawableForDynamic end, pkg = com.android.deskclock, picName = deskclock_bg
06-18 12:00:36.166 3919-3979/? I/HwLauncher: ClockDynamicUpdater clock update folder at ClockDynamicUpdater
06-18 12:00:36.166 3919-3979/? I/HwLauncher: DynamicUpdater updateBitmap end and send update message
06-18 12:00:36.170 3145-5691/? I/AccountManagerService: getTypesVisibleToCaller: isPermitted? true
06-18 12:00:36.171 3919-3919/? I/HwLauncher: DynamicUpdater call updateFolder
06-18 12:00:36.171 3919-3979/? I/HwLauncher: WeatherDynamicUpdaterpositiveUpdate at WeatherDynamicUpdater
06-18 12:00:36.171 3919-3919/? I/HwLauncher: DynamicIcon onResume  isvisible = true   mAttachedToWindow:false    mWindowVisible:falsecom.huawei.android.totemweather

Error in starting the zoom meeting

Your Environment

  • Plugin version:
  • Platform: iOS or Android
  • OS version:
  • Device manufacturer / model:
  • Flutter info (flutter doctor):
  • Plugin config:
import 'dart:async';
import 'dart:io';

import 'package:flutter_zoom_plugin/zoom_view.dart';
import 'package:flutter_zoom_plugin/zoom_options.dart';

import 'package:flutter/material.dart';

// ignore: must_be_immutable
class StartMeetingWidget extends StatelessWidget {
  ZoomOptions zoomOptions;
  ZoomMeetingOptions meetingOptions;

  Timer timer;

  StartMeetingWidget({Key key, meetingId, meetingPassword}) : super(key: key) {
    this.zoomOptions = new ZoomOptions(
      domain: "zoom.us",
      appKey: "appkey",
      appSecret: "appSecret",
    );
    this.meetingOptions = new ZoomMeetingOptions(
        userId: "p",
        meetingId: meetingId,
        displayName: "j,
        zoomToken:
            "gave my original token",
        meetingPassword: meetingPassword,
        disableDialIn: "true",
        disableDrive: "true",
        disableInvite: "true",
        disableShare: "true",
        noAudio: "false",
        noDisconnectAudio: "false");
  }

  bool _isMeetingEnded(String status) {
    var result = false;

    if (Platform.isAndroid)
      result = status == "MEETING_STATUS_DISCONNECTING" ||
          status == "MEETING_STATUS_FAILED";
    else
      result = status == "MEETING_STATUS_IDLE";

    return result;
  }

  @override
  Widget build(BuildContext context) {
    // Use the Todo to create the UI.
    return Scaffold(
      appBar: AppBar(
        title: Text('Loading meeting '),
      ),
      body: Padding(
          padding: EdgeInsets.all(16.0),
          child: ZoomView(onViewCreated: (controller) {
            print("Created the view");

            controller.initZoom(this.zoomOptions).then((results) {
              print("initialised");
              print(results);

              if (results[0] == 0) {
                controller.zoomStatusEvents.listen((status) {
                  print("Meeting Status Stream: " +
                      status[0] +
                      " - " +
                      status[1]);
                  if (_isMeetingEnded(status[0])) {
                    Navigator.pop(context);
                    timer?.cancel();
                  }
                });

                print("listen on event channel");

                controller
                    .startMeeting(this.meetingOptions)
                    .then((joinMeetingResult) {
                  timer = Timer.periodic(new Duration(seconds: 2), (timer) {
                    controller
                        .meetingStatus(this.meetingOptions.meetingId)
                        .then((status) {
                      print("Meeting Status Polling: " +
                          status[0] +
                          " - " +
                          status[1]);
                    });
                  });
                });
              }
            }).catchError((error) {
              print("Error");
              print(error);
            });
          })),
    );
  }
}

Expected Behavior

it should have started meeting when i passed my token ,userid and displayname and the meeting should have been established

Actual Behavior

its in the idle postion and never started the meeting

Steps to Reproduce

Context

Debug logs

Logs

E/BpSurfaceComposerClient(19375): Failed to transact (-1) Restarted application in 2,121ms. Reloaded 0 of 533 libraries in 680ms. I/flutter (193 initialised Meeting ServiceImpl(19375): StartMeeting Params4APIUser: userId, zoomToken and displayName cannot be null or empty

Zoom’s domain

Is there a possibility to change zoom’s domain? If yes, how many instead of .us are available?

Flutter Zoom Plugin - Giving a Meeting Idle When Meeting is Active.

Hi Kevin,

I've been using your Zoom plugin in a project I've been working on for the past few months and it's been working fine over the past few days, I've been getting this error when trying to start a meeting.
"MEETING_STATUS_IDLE - No meeting is running"

I have the meeting active in another Zoom app outside of my application and it works when I'm using it from Zoom app to Zoom app but for some reason now it's not working using the plugin when it was before.

Is there something else I need to be doing now that Zoom has updated somethings to get the plugin to work again?

Thanks,
DC

Crash on Android in release.

I has tested on 10 Android devices. All of them crash when run release but ok on debug mode !

Android Logcat show this:

2020-03-21 16:30:57.324 21419-21419/? E/ZMBuildConfig: parse build target failed. value=TARGET_ZOOM
java.lang.NoSuchFieldException: TARGET_ZOOM
at java.lang.Class.getField(Class.java:1549)
at g.a.b.n.(ZMBuildConfig.java:4)
at com.zipow.cmmlib.AppContext.(AppContext.java:5)
at com.zipow.cmmlib.AppContext.a(AppContext.java:1)
at us.zoom.sdk.t.a(ZoomSDK.java:16)
at c.c.a.f.a(ZoomView.java:11)
at c.c.a.f.onMethodCall(ZoomView.java:5)
at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:2)
at io.flutter.embedding.engine.dart.DartMessenger.handleMessageFromDart(DartMessenger.java:5)
at io.flutter.embedding.engine.FlutterJNI.handlePlatformMessage(FlutterJNI.java:2)
at android.os.MessageQueue.nativePollOnce(Native Method)
at android.os.MessageQueue.next(MessageQueue.java)
at android.os.Looper.loop(Looper.java)
at android.app.ActivityThread.main(ActivityThread.java)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java)

Unable to build the sample

Your Environment

Doctor summary (to see all details, run flutter doctor -v):
[√] Flutter (Channel stable, v1.12.13+hotfix.9, on Microsoft Windows [Version 10.0.19041.207], locale en-IN)
[!] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
X Android license status unknown.
Try re-installing or updating your Android SDK Manager.
See https://developer.android.com/studio/#downloads or visit https://flutter.dev/setup/#android-setup for detailed instructions.
[√] Android Studio (version 3.6)
[√] VS Code (version 1.44.2)
[√] Connected device (1 available)

! Doctor found issues in 1 category.

Expected Behavior

The sample should build normally

Actual Behavior

Sample not builds properlly

Steps to Reproduce

1.Run the attached sample
2.Unable to build the sample due to below issues

Context

I tried to create a sample using the below documentation:https://github.com/decodedhealth/flutter_zoom_plugin
But After sample creation unable to build sample.
See below logs for details
Attached Sample
Sample :[zoom_sdk.zip]
zoom_sdk.zip

Debug logs

Launching lib\main.dart on SM A605G in debug mode...

FAILURE: Build failed with an exception.

  • What went wrong:
    Execution failed for task ':app:processDebugResources'.

A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade
Android resource linking failed
C:\Users\SURIYA.gradle\caches\transforms-2\files-2.1\44c1808569e149a4997999b6407e61e7\commonlib\res\values\values.xml:233:5-238:13: AAPT: error: style attribute 'attr/colorPrimary (aka com.example.zoom_sdk:attr/colorPrimary)' not found.

 C:\Users\SURIYA\.gradle\caches\transforms-2\files-2.1\44c1808569e149a4997999b6407e61e7\commonlib\res\values\values.xml:233:5-238:13: AAPT: error: style attribute 'attr/colorPrimaryDark (aka com.example.zoom_sdk:attr/colorPrimaryDark)' not found.

 C:\Users\SURIYA\.gradle\caches\transforms-2\files-2.1\44c1808569e149a4997999b6407e61e7\commonlib\res\values\values.xml:233:5-238:13: AAPT: error: style attribute 'attr/colorAccent (aka com.example.zoom_sdk:attr/colorAccent)' not found.
 C:\Users\SURIYA\.gradle\caches\transforms-2\files-2.1\44c1808569e149a4997999b6407e61e7\commonlib\res\values\values.xml:233:5-238:13: AAPT: error: style attribute 'attr/toolbarStyle (aka com.example.zoom_sdk:attr/toolbarStyle)' not found.

 C:\Users\SURIYA\.gradle\caches\transforms-2\files-2.1\44c1808569e149a4997999b6407e61e7\commonlib\res\values\values.xml:239:5-241:13: AAPT: error: style attribute 'attr/contentInsetStart (aka com.example.zoom_sdk:attr/contentInsetStart)' not found.

 C:\Users\SURIYA\.gradle\caches\transforms-2\files-2.1\508defc37858ca983161bcac6af8069d\jetified-mobilertc\res\values\values.xml:3554:5-3558:10: AAPT: error: style attribute 'attr/textAllCaps (aka com.example.zoom_sdk:attr/textAllCaps)' not found.

 C:\Users\SURIYA\.gradle\caches\transforms-2\files-2.1\44c1808569e149a4997999b6407e61e7\commonlib\res\values\values.xml:971:5-974:10: AAPT: error: style attribute 'attr/windowActionBar (aka com.example.zoom_sdk:attr/windowActionBar)' not found.
  • Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

  • Get more help at https://help.gradle.org

BUILD FAILED in 53s
The built failed likely due to AndroidX incompatibilities in a plugin. The tool is about to try using Jetfier to solve the incompatibility.
Building plugin flutter_zoom_plugin...

FAILURE: Build failed with an exception.

  • What went wrong:
    A problem occurred configuring root project 'flutter_zoom_plugin'.

SDK location not found. Define location with an ANDROID_SDK_ROOT environment variable or by setting the sdk.dir path in your project's local properties file at 'D:\software\flutter.pub-cache\git\flutter_zoom_plugin-46fb61bcbd4d0116d9f4a40855c3e4ca9434636c\android\local.properties'.

  • Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

  • Get more help at https://help.gradle.org

BUILD FAILED in 7s
The plugin flutter_zoom_plugin could not be built due to the issue above.
Exited (sigterm)

Bringing down Android minSDKVersion

Hi,
the package uses an Android minSDKVersion of 24, but the Android Zoom SDK uses 14.

Is there any specific reason why it has been brought up to 24?

Meeting Password dialog appears even the password is set on the ZoomMeetingOptions

The start meeting widget is asking for a meeting password even when i provided the password in the ZoomMeetingOptoins

  • Platform: iOS or Android
class StartMeetingWidget extends StatelessWidget {
  ZoomOptions zoomOptions;
  ZoomMeetingOptions meetingOptions;

  Timer timer;

  StartMeetingWidget({Key key, meetingId, meetingPassword}) : super(key: key) {
    print(meetingPassword);
    this.zoomOptions = new ZoomOptions(
      domain: "zoom.us",
      appKey: "key",
      appSecret: "secret",
    );
    this.meetingOptions = new ZoomMeetingOptions(
        userId: 'user_id',
        displayName: 'Selvesan',
        meetingPassword: meetingPassword,
        meetingId: meetingId,
        zoomAccessToken:"Access token"
        zoomToken: "token",
        disableDialIn: "true",
        disableDrive: "true",
        disableInvite: "true",
        disableShare: "true",
        noAudio: "false",
        noDisconnectAudio: "false");
    print(this.meetingOptions.meetingPassword);
  }
}

Expected Behavior

The meeting password dialog should not pop up. The dialog box does not appear while using the MeetingWidget. Shouldn't it be same for the StartMeetingWidget as well

hide meeting id

i want to hide meeting id and meeting passcode s there any chance to do that wthout modifyng sdks ?

Meeting is invalid

When I run your app, After entering the meeting id and password. Alert box shows the meeting is invalid.

Error after adding pubspec dependency

After I add in pubspec.yaml, I am getting the following error -

FAILURE: Build failed with an exception.

  • What went wrong:
    Execution failed for task ':flutter_zoom_plugin:bundleDebugAar'.

Direct local .aar file dependencies are not supported when building an AAR. The resulting AAR would be broken because the classes and Android resources from any local .aar file dependencies would not be packaged in the resulting AAR. Previous versions of the Android Gradle Plugin produce broken AARs in this case too (despite not throwing this error). The following direct local .aar file dependencies of the :flutter_zoom_plugin project caused this error: /home/system/.pub-cache/git/flutter_zoom_plugin-1647c9e48d2f31da434a777037d949ed3f3391ff/android/libs/commonlib/commonlib.aar, /home/system/.pub-cache/git/flutter_zoom_plugin-1647c9e48d2f31da434a777037d949ed3f3391ff/android/libs/mobilertc/mobilertc.aar

  • Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

  • Get more help at https://help.gradle.org

BUILD FAILED in 14s
Exception: Gradle task assembleDebug failed with exit code 1

Please help

foregroundServiceType not found Android

Execution failed for task ':app:processDebugResources'.

Android resource linking failed
/Users/mohamedali/MohamedWork/AndroidProjects/flutter/flutter_zoom_app/build/app/intermediates/merged_manifests/debug/AndroidManifest.xml:165: AAPT: error: attribute android:foregroundServiceType not found.

error: failed processing manifest.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.