ark-brighthustle / flutter_zoom_sdk

Zoom SDK from ZOOM ported to flutter as plugin with all necessary features and with Null Safety which is implementation by CodeSyncr
BSD 3-Clause "New" or "Revised" License
41 stars 85 forks source link

App Crashes on joining meeting on Android 12 #65

Closed Roopaish closed 2 years ago

Roopaish commented 2 years ago

It was working fine on Android 11 but I had an update today to Android 12 and now the app crashes on joining meeting.

Here's the log

E/mple.learning(29820): No implementation found for long com.zipow.videobox.sip.server.SIPCallEventListenerUI.nativeInit() (tried Java_com_zipow_videobox_sip_server_SIPCallEventListenerUI_nativeInit and Java_com_zipow_videobox_sip_server_SIPCallEventListenerUI_nativeInit__) D/AndroidRuntime(29820): Shutting down VM E/AndroidRuntime(29820): FATAL EXCEPTION: main E/AndroidRuntime(29820): Process: com.example.learning, PID: 29820 E/AndroidRuntime(29820): java.lang.RuntimeException: Unable to resume activity {com.clamphook.ClampHook/com.zipow.videobox.JoinByURLActivity}: java.lang.SecurityException: getCallState: Neither user 10635 nor current process has android.permission.READ_PHONE_STATE. E/AndroidRuntime(29820): at android.app.ActivityThread.performResumeActivity(ActivityThread.java:4865) E/AndroidRuntime(29820): at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:4898) E/AndroidRuntime(29820): at android.app.servertransaction.ResumeActivityItem.execute(ResumeActivityItem.java:54) E/AndroidRuntime(29820): at android.app.servertransaction.ActivityTransactionItem.execute(ActivityTransactionItem.java:45) E/AndroidRuntime(29820): at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:176) E/AndroidRuntime(29820): at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:97) E/AndroidRuntime(29820): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2260) E/AndroidRuntime(29820): at android.os.Handler.dispatchMessage(Handler.java:106) E/AndroidRuntime(29820): at android.os.Looper.loopOnce(Looper.java:210) E/AndroidRuntime(29820): at android.os.Looper.loop(Looper.java:299) E/AndroidRuntime(29820): at android.app.ActivityThread.main(ActivityThread.java:8138) E/AndroidRuntime(29820): at java.lang.reflect.Method.invoke(Native Method) E/AndroidRuntime(29820): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:556) E/AndroidRuntime(29820): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1037) E/AndroidRuntime(29820): Caused by: java.lang.SecurityException: getCallState: Neither user 10635 nor current process has android.permission.READ_PHONE_STATE. E/AndroidRuntime(29820): at android.os.Parcel.createExceptionOrNull(Parcel.java:2425) E/AndroidRuntime(29820): at android.os.Parcel.createException(Parcel.java:2409) E/AndroidRuntime(29820): at android.os.Parcel.readException(Parcel.java:2392) E/AndroidRuntime(29820): at android.os.Parcel.readException(Parcel.java:2334) E/AndroidRuntime(29820): at com.android.internal.telecom.ITelecomService$Stub$Proxy.getCallStateUsingPackage(ITelecomService.java:2578) E/AndroidRuntime(29820): at android.telecom.TelecomManager.getCallState(TelecomManager.java:1823) E/AndroidRuntime(29820): at android.telephony.TelephonyManager.getCallState(TelephonyManager.java:5746) E/AndroidRuntime(29820): at com.zipow.videobox.sip.server.y.L(CmmSipAudioMgr.java:7) E/AndroidRuntime(29820): at com.zipow.videobox.sip.server.y.o(CmmSipAudioMgr.java:1) E/AndroidRuntime(29820): at com.zipow.videobox.sip.server.CmmSIPCallManager.j1(CmmSIPCallManager.java:11) E/AndroidRuntime(29820): at com.zipow.videobox.sip.server.CmmSIPCallManager.g1(CmmSIPCallManager.java:9) E/AndroidRuntime(29820): at com.zipow.videobox.JoinByURLActivity.a(JoinByURLActivity.java:19) E/AndroidRuntime(29820): at com.zipow.videobox.JoinByURLActivity.b(JoinByURLActivity.java:31) E/AndroidRuntime(29820): at com.zipow.videobox.JoinByURLActivity.onResume(JoinByURLActivity.java:125) E/AndroidRuntime(29820): at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1477) E/AndroidRuntime(29820): at android.app.Activity.performResume(Activity.java:8338) E/AndroidRuntime(29820): at android.app.ActivityThread.performResumeActivity(ActivityThread.java:4855) E/AndroidRuntime(29820): ... 13 more D/OOMEventManagerFK(29820): checkEventAndDumpForJE: 0 I/Process (29820): Sending signal. PID: 29820 SIG: 9 Lost connection to device.

ark-brighthustle commented 2 years ago

unable to reproduce the issue...on android 12....can u try by creating new project and then implement the plugin

Roopaish commented 2 years ago

Tried by creating a new project but the result is same.

Here's the full code. ```dart import 'dart:async'; import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_zoom_sdk/zoom_options.dart'; import 'package:flutter_zoom_sdk/zoom_view.dart'; void main() { runApp(const MyApp()); } class MyApp extends StatelessWidget { const MyApp({Key? key}) : super(key: key); @override Widget build(BuildContext context) { return MaterialApp( title: 'Flutter Demo', theme: ThemeData( primarySwatch: Colors.blue, ), home: const MyHomePage(title: 'Flutter Demo Home Page'), ); } } class MyHomePage extends StatefulWidget { const MyHomePage({Key? key, required this.title}) : super(key: key); final String title; @override State createState() => _MyHomePageState(); } class _MyHomePageState extends State { @override Widget build(BuildContext context) { final meetingIdController = TextEditingController(); final meetingPasswordController = TextEditingController(); Timer timer = Timer(const Duration(seconds: 5), () {}); Future joinMeeting(BuildContext context) async { 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; } if (meetingIdController.text.isNotEmpty && meetingPasswordController.text.isNotEmpty) { ZoomOptions zoomOptions = ZoomOptions( domain: "zoom.us", appKey: appKey, //API KEY FROM ZOOM appSecret: appSecret, //API SECRET FROM ZOOM ); var meetingOptions = ZoomMeetingOptions( userId: 'roopaish', //pass username for join meeting only --- Any name eg:- EVILRATT. meetingId: meetingIdController.text, //pass meeting id for join meeting only meetingPassword: meetingPasswordController .text, //pass meeting password for join meeting only disableDialIn: "true", disableDrive: "true", disableInvite: "true", disableShare: "true", disableTitlebar: "false", viewOptions: "true", noAudio: "false", noDisconnectAudio: "false", ); try { var zoom = ZoomView(); print("hello1"); final results = await zoom.initZoom(zoomOptions); print("hello2"); print(results); if (results[0] == 0) { zoom.onMeetingStatus().listen((status) { print( "[Meeting Status Stream] : " + status[0] + " - " + status[1]); if (_isMeetingEnded(status[0])) { print("[Meeting Status] :- Ended"); timer.cancel(); } }); print("listen on event channel"); zoom.joinMeeting(meetingOptions).then((joinMeetingResult) { timer = Timer.periodic(new Duration(seconds: 2), (timer) { zoom.meetingStatus(meetingOptions.meetingId!).then((status) { print("[Meeting Status Polling] : " + status[0] + " - " + status[1]); }); }); }); } } catch (e) { ScaffoldMessenger.of(context).showSnackBar(SnackBar( content: Text(e.toString()), )); } } else { if (meetingIdController.text.isEmpty) { ScaffoldMessenger.of(context).showSnackBar(const SnackBar( content: Text("Enter a valid meeting id to continue."), )); } else if (meetingPasswordController.text.isEmpty) { ScaffoldMessenger.of(context).showSnackBar(const SnackBar( content: Text("Enter a meeting password to start."), )); } } } return Scaffold( appBar: PreferredSize( preferredSize: const Size.fromHeight(58), child: AppBar( elevation: 0, centerTitle: false, leadingWidth: 30, title: Text( "Zoom Meetings", overflow: TextOverflow.ellipsis, ), backgroundColor: Colors.transparent, ), ), body: ListView( padding: const EdgeInsets.all(16), children: [ InputField( label: "Meeting id", controller: meetingIdController, ), const SizedBox( height: 16, ), InputField( label: "Meeting Password", controller: meetingPasswordController, ), const SizedBox( height: 24, ), Button( label: "Join", onPressed: () => joinMeeting(context), ), ], ), ); } } class Button extends StatelessWidget { final Function()? onPressed; final String label; final Color? textColor; final Color? backgroundColor; final double? height; final double? width; final double fontSize; final Icon? icon; final EdgeInsetsGeometry? padding; final EdgeInsetsGeometry? margin; final bool shrink; const Button({ Key? key, required this.onPressed, required this.label, this.textColor, this.backgroundColor = Colors.grey, this.height, this.width = double.infinity, this.fontSize = 18, this.icon, this.padding, this.margin, this.shrink = false, }) : super(key: key); @override Widget build(BuildContext context) { return TextButton( onPressed: onPressed, child: Container( width: width, padding: padding, margin: margin, height: height, constraints: const BoxConstraints(minHeight: 35), child: Row( mainAxisAlignment: MainAxisAlignment.center, children: [ if (icon != null) icon!, if (icon != null) const SizedBox(width: 8), Flexible( child: Text( label, overflow: TextOverflow.clip, textAlign: TextAlign.center, ), ), ], ), ), style: TextButton.styleFrom( backgroundColor: backgroundColor, shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(5), ), ), ); } } class InputField extends StatelessWidget { final String? label; final bool obscureText; final String? Function(String?)? validator; final TextInputType? keyboardType; final void Function(String?)? onSaved; final String? initialValue; final int lines; final TextEditingController? controller; const InputField( {Key? key, this.label, this.obscureText = false, this.validator, this.keyboardType, this.onSaved, this.initialValue, this.lines = 1, this.controller}) : super(key: key); @override Widget build(BuildContext context) { return Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Text( label!, ), const SizedBox( height: 8, ), TextFormField( controller: controller, minLines: lines, maxLines: lines, initialValue: initialValue, onSaved: onSaved, validator: validator, keyboardType: keyboardType, obscureText: obscureText, cursorColor: Colors.black, decoration: InputDecoration( fillColor: const Color(0xFFF8FAFC), filled: true, border: const OutlineInputBorder( borderSide: BorderSide(color: Color(0xFF91A4B7), width: .5), ), focusedBorder: const OutlineInputBorder( borderSide: BorderSide(color: Color(0xFF91A4B7)), ), ), ) ], ); } } ```
Also there was a warning WARNING: [Processor] Library '[C:\Users\rupes\.gradle\caches\modules-2\files-2.1\com.google.android.exoplayer\exoplayer-ui\2.12.3\474089166ba2dd1e1fd0c1fbbbfd109e681041fa\exoplayer-ui-2.12.3.aar]()' contains references to both AndroidX and old support library. This seems like the library is partially migrated. Jetifier will try to rewrite the library anyway. Example of androidX reference: 'androidx/core/app/NotificationCompat$Builder' Example of support library reference: 'android/support/v4/media/session/MediaSessionCompat$Token'
Here's the log again I/flutter (14603): [0, 0] I/flutter (14603): listen on event channel D/IS_CTS_MODE(14603): true D/MULTI_WINDOW_SWITCH_ENABLED(14603): false D/DecorView[](14603): getWindowModeFromSystem windowmode is 1 E/example.testin(14603): No implementation found for long com.zipow.videobox.sip.server.SIPCallEventListenerUI.nativeInit() (tried Java_com_zipow_videobox_sip_server_SIPCallEventListenerUI_nativeInit and Java_com_zipow_videobox_sip_server_SIPCallEventListenerUI_nativeInit__) E/example.testin(14603): No implementation found for long com.zipow.videobox.sip.server.SIPCallEventListenerUI.nativeInit() (tried Java_com_zipow_videobox_sip_server_SIPCallEventListenerUI_nativeInit and Java_com_zipow_videobox_sip_server_SIPCallEventListenerUI_nativeInit__) D/AndroidRuntime(14603): Shutting down VM E/AndroidRuntime(14603): FATAL EXCEPTION: main E/AndroidRuntime(14603): Process: com.example.testing, PID: 14603 E/AndroidRuntime(14603): java.lang.RuntimeException: Unable to resume activity {com.example.testing/com.zipow.videobox.JoinByURLActivity}: java.lang.SecurityException: getCallState: Neither user 10652 nor current process has android.permission.READ_PHONE_STATE. E/AndroidRuntime(14603): at android.app.ActivityThread.performResumeActivity(ActivityThread.java:4865) E/AndroidRuntime(14603): at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:4898) E/AndroidRuntime(14603): at android.app.servertransaction.ResumeActivityItem.execute(ResumeActivityItem.java:54) E/AndroidRuntime(14603): at android.app.servertransaction.ActivityTransactionItem.execute(ActivityTransactionItem.java:45) E/AndroidRuntime(14603): at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:176) E/AndroidRuntime(14603): at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:97) E/AndroidRuntime(14603): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2260) E/AndroidRuntime(14603): at android.os.Handler.dispatchMessage(Handler.java:106) E/AndroidRuntime(14603): at android.os.Looper.loopOnce(Looper.java:210) E/AndroidRuntime(14603): at android.os.Looper.loop(Looper.java:299) E/AndroidRuntime(14603): at android.app.ActivityThread.main(ActivityThread.java:8138) E/AndroidRuntime(14603): at java.lang.reflect.Method.invoke(Native Method) E/AndroidRuntime(14603): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:556) E/AndroidRuntime(14603): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1037) E/AndroidRuntime(14603): Caused by: java.lang.SecurityException: getCallState: Neither user 10652 nor current process has android.permission.READ_PHONE_STATE. E/AndroidRuntime(14603): at android.os.Parcel.createExceptionOrNull(Parcel.java:2425) E/AndroidRuntime(14603): at android.os.Parcel.createException(Parcel.java:2409) E/AndroidRuntime(14603): at android.os.Parcel.readException(Parcel.java:2392) E/AndroidRuntime(14603): at android.os.Parcel.readException(Parcel.java:2334) E/AndroidRuntime(14603): at com.android.internal.telecom.ITelecomService$Stub$Proxy.getCallStateUsingPackage(ITelecomService.java:2578) E/AndroidRuntime(14603): at android.telecom.TelecomManager.getCallState(TelecomManager.java:1823) E/AndroidRuntime(14603): at android.telephony.TelephonyManager.getCallState(TelephonyManager.java:5746) E/AndroidRuntime(14603): at com.zipow.videobox.sip.server.y.L(CmmSipAudioMgr.java:7) E/AndroidRuntime(14603): at com.zipow.videobox.sip.server.y.o(CmmSipAudioMgr.java:1) E/AndroidRuntime(14603): at com.zipow.videobox.sip.server.CmmSIPCallManager.j1(CmmSIPCallManager.java:11) E/AndroidRuntime(14603): at com.zipow.videobox.sip.server.CmmSIPCallManager.g1(CmmSIPCallManager.java:9) E/AndroidRuntime(14603): at com.zipow.videobox.JoinByURLActivity.a(JoinByURLActivity.java:19) E/AndroidRuntime(14603): at com.zipow.videobox.JoinByURLActivity.b(JoinByURLActivity.java:31) E/AndroidRuntime(14603): at com.zipow.videobox.JoinByURLActivity.onResume(JoinByURLActivity.java:125) E/AndroidRuntime(14603): at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1477) E/AndroidRuntime(14603): at android.app.Activity.performResume(Activity.java:8338) E/AndroidRuntime(14603): at android.app.ActivityThread.performResumeActivity(ActivityThread.java:4855) E/AndroidRuntime(14603): ... 13 more E/AndroidRuntime(14603): Caused by: android.os.RemoteException: Remote stack trace: E/AndroidRuntime(14603): at android.app.ContextImpl.enforce(ContextImpl.java:2188) E/AndroidRuntime(14603): at android.app.ContextImpl.enforceCallingOrSelfPermission(ContextImpl.java:2216) E/AndroidRuntime(14603): at android.content.ContextWrapper.enforceCallingOrSelfPermission(ContextWrapper.java:915) E/AndroidRuntime(14603): at com.android.server.telecom.TelecomServiceImpl.canReadPhoneState(TelecomServiceImpl.java:2342) E/AndroidRuntime(14603): at com.android.server.telecom.TelecomServiceImpl.access$300(TelecomServiceImpl.java:80) E/AndroidRuntime(14603): D/OOMEventManagerFK(14603): checkEventAndDumpForJE: 0 I/Process (14603): Sending signal. PID: 14603 SIG: 9 Lost connection to device. Exited (sigterm) ****
Roopaish commented 2 years ago

@evilrat Any updates on this?

ark-brighthustle commented 2 years ago

@evilrat Any updates on this?

unable to reproduce the issue.........looking into it for fix

ark-brighthustle commented 2 years ago

@evilrat Any updates on this?

unable to reproduce the issue.........looking into it for fix

api level 32 has been added...can you check if it works or not

Roopaish commented 2 years ago

api level 32 has been added...can you check if it works or not

still the same result with new version.

E/example.testin(16700): No implementation found for long com.zipow.videobox.sip.server.SIPCallEventListenerUI.nativeInit() (tried Java_com_zipow_videobox_sip_server_SIPCallEventListenerUI_nativeInit and Java_com_zipow_videobox_sip_server_SIPCallEventListenerUI_nativeInit__)

ark-brighthustle commented 2 years ago

api level 32 has been added...can you check if it works or not

still the same result with new version.

E/example.testin(16700): No implementation found for long com.zipow.videobox.sip.server.SIPCallEventListenerUI.nativeInit() (tried Java_com_zipow_videobox_sip_server_SIPCallEventListenerUI_nativeInit and Java_com_zipow_videobox_sip_server_SIPCallEventListenerUI_nativeInit__)

Issue still persists....looking for it to fix it as soon as possible

Faizan-Farooq commented 2 years ago

Having the same issue on android 12 @evilrat App crashes when creating a meeting I am sure will crash when joining as well In the logs it can be seen that a permission is needed. I added the permission as well bit still the app crashed

ark-brighthustle commented 2 years ago

Having the same issue on android 12 @evilrat App crashes when creating a meeting I am sure will crash when joining as well In the logs it can be seen that a permission is needed. I added the permission as well bit still the app crashed

will release the patch today....everything seems to be working fine as of now from my side on emulator api level 31 & 32

Roopaish commented 2 years ago

@evilrat Thank you for the effort but the issue still persists. It's working fine on other android versions. But not on my android 12 device. By the way, my device is Redmi Note 10 pro with MIUI 13.0.4 Global Stable version and android12 SKQ1.210908.001.

/om.example.tes(29239): open libmigui.so failed! dlopen - dlopen failed: library "libmigui.so" not found
D/DecorView[](29239): onWindowFocusChanged hasWindowFocus true
I/ZoomSDK (29239): initialize context is android.app.Application@dd3729b
I/EngineFactory(29239): Provider GmsCore_OpenSSL not available
I/AudioManager(29239): In isBluetoothScoAvailableOffCall(), calling appilication: com.example.test, return value: true
I/AudioManager(29239): In isBluetoothScoOn(), calling application: com.example.test
D/BluetoothHeadset(29239): Binding service...
W/om.example.tes(29239): Long monitor contention with owner main (29239) at com.zipow.videobox.VideoBoxApplication com.zipow.videobox.VideoBoxApplication.getNonNullInstance()(VideoBoxApplication.java:1) waiters=0 in com.zipow.videobox.VideoBoxApplication com.zipow.videobox.VideoBoxApplication.getInstance() for 155ms
I/flutter (29239): listen on event channel
I/flutter (29239): true
D/IS_CTS_MODE(29239): true
D/MULTI_WINDOW_SWITCH_ENABLED(29239): false
D/DecorView[](29239): getWindowModeFromSystem  windowmode is 1
2
E/om.example.tes(29239): No implementation found for long com.zipow.videobox.sip.server.SIPCallEventListenerUI.nativeInit() (tried Java_com_zipow_videobox_sip_server_SIPCallEventListenerUI_nativeInit and Java_com_zipow_videobox_sip_server_SIPCallEventListenerUI_nativeInit__)
D/AndroidRuntime(29239): Shutting down VM
E/AndroidRuntime(29239): FATAL EXCEPTION: main
E/AndroidRuntime(29239): Process: com.example.test, PID: 29239
...
Roopaish commented 2 years ago

PS: I tried on android 32 emulator. But the app crashes there too. I pushed the whole project in here

I/EngineFactory( 7112): Provider GmsCore_OpenSSL not available
D/BluetoothHeadset( 7112): Proxy object connected
W/om.example.tes( 7112): Long monitor contention with owner main (7112) at com.zipow.videobox.VideoBoxApplication com.zipow.videobox.VideoBoxApplication.getNonNullInstance()(VideoBoxApplication.java:1) waiters=0 in com.zipow.videobox.VideoBoxApplication com.zipow.videobox.VideoBoxApplication.getInstance() for 2.131s
D/AndroidRuntime( 7112): Shutting down VM
E/AndroidRuntime( 7112): FATAL EXCEPTION: main
E/AndroidRuntime( 7112): Process: com.example.test, PID: 7112
E/AndroidRuntime( 7112): java.lang.SecurityException: Need android.permission.BLUETOOTH_CONNECT permission for AttributionSource { uid = 10148, packageName = com.example.test, attributionTag = null, token = android.os.BinderProxy@3f2dead, next = null }: HeadsetService
E/AndroidRuntime( 7112):    at android.os.Parcel.createExceptionOrNull(Parcel.java:2425)
E/AndroidRuntime( 7112):    at android.os.Parcel.createException(Parcel.java:2409)
E/AndroidRuntime( 7112):    at android.os.Parcel.readException(Parcel.java:2392)
E/AndroidRuntime( 7112):    at android.os.Parcel.readException(Parcel.java:2334)
E/AndroidRuntime( 7112):    at android.bluetooth.IBluetoothHeadset$Stub$Proxy.getConnectedDevicesWithAttribution(IBluetoothHeadset.java:1040)
E/AndroidRuntime( 7112):    at android.bluetooth.BluetoothHeadset.getConnectedDevices(BluetoothHeadset.java:549)
E/AndroidRuntime( 7112):    at us.zoom.androidlib.util.HeadsetUtil$1.onServiceConnected(HeadsetUtil.java:108)
E/AndroidRuntime( 7112):    at android.bluetooth.BluetoothHeadset$3.handleMessage(BluetoothHeadset.java:1422)
E/AndroidRuntime( 7112):    at android.os.Handler.dispatchMessage(Handler.java:106)
E/AndroidRuntime( 7112):    at android.os.Looper.loopOnce(Looper.java:201)
E/AndroidRuntime( 7112):    at android.os.Looper.loop(Looper.java:288)
E/AndroidRuntime( 7112):    at android.app.ActivityThread.main(ActivityThread.java:7842)
E/AndroidRuntime( 7112):    at java.lang.reflect.Method.invoke(Native Method)
E/AndroidRuntime( 7112):    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
E/AndroidRuntime( 7112):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)
I/Process ( 7112): Sending signal. PID: 7112 SIG: 9
Lost connection to device.
ark-brighthustle commented 2 years ago

Need android.permission.BLUETOOTH_CONNECT

<!-- Request legacy Bluetooth permissions on older devices. -->
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<!-- Needed only if your app looks for Bluetooth devices.
         If your app doesn't use Bluetooth scan results to derive physical
         location information, you can strongly assert that your app
         doesn't derive physical location. -->
<uses-permission android:name="android.permission.BLUETOOTH_SCAN" />
<!-- Needed only if your app makes the device discoverable to Bluetooth
  devices. -->
<uses-permission android:name="android.permission.BLUETOOTH_ADVERTISE" />
<!-- Needed only if your app communicates with already-paired Bluetooth
       devices. -->
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
<!--bibo01 : hardware option-->
<uses-feature android:name="android.hardware.bluetooth" android:required="false"/>
<uses-feature android:name="android.hardware.bluetooth_le" android:required="false"/>
Faizan-Farooq commented 2 years ago

@evilrat adding the bluetooth permission still causes the app to crash as you can see i added the permission but still the app crashes on android 12 when creating a meeting

Screenshot 2022-03-31 at 2 15 39 PM
ark-brighthustle commented 2 years ago

can you try to use permission_handler to give permission....

Roopaish commented 2 years ago

permission_handler

Tried, now the BluetoothConnect error only has gone. But the old log is same which crashes the app.

E/om.example.tes( 9392): No implementation found for long com.zipow.videobox.sip.server.SIPCallEventListenerUI.nativeInit() (tried Java_com_zipow_videobox_sip_server_SIPCallEventListenerUI_nativeInit and Java_com_zipow_videobox_sip_server_SIPCallEventListenerUI_nativeInit__)

java.lang.RuntimeException: Unable to create service com.zipow.videobox.share.ScreenShareServiceForSDK: java.lang.IllegalArgumentException: com.example.test: Targeting S+ (version 31 and above) requires that one of FLAG_IMMUTABLE or FLAG_MUTABLE be specified when creating a PendingIntent.

ark-brighthustle commented 2 years ago

permission_handler

Tried, now the BluetoothConnect error only has gone. But the old log is same which crashes the app.

E/om.example.tes( 9392): No implementation found for long com.zipow.videobox.sip.server.SIPCallEventListenerUI.nativeInit() (tried Java_com_zipow_videobox_sip_server_SIPCallEventListenerUI_nativeInit and Java_com_zipow_videobox_sip_server_SIPCallEventListenerUI_nativeInit__)

java.lang.RuntimeException: Unable to create service com.zipow.videobox.share.ScreenShareServiceForSDK: java.lang.IllegalArgumentException: com.example.test: Targeting S+ (version 31 and above) requires that one of FLAG_IMMUTABLE or FLAG_MUTABLE be specified when creating a PendingIntent.

Look into it.....

Roopaish commented 2 years ago

hello @evilrat , any updates in this?

Faizan-Farooq commented 2 years ago

@evilrat getting the same issue after adding permissions through permission handler. its about flag_immutable or flag_mutable for intents when targeting S+ verions.

permission_handler

Tried, now the BluetoothConnect error only has gone. But the old log is same which crashes the app. E/om.example.tes( 9392): No implementation found for long com.zipow.videobox.sip.server.SIPCallEventListenerUI.nativeInit() (tried Java_com_zipow_videobox_sip_server_SIPCallEventListenerUI_nativeInit and Java_com_zipow_videobox_sip_server_SIPCallEventListenerUI_nativeInit__) java.lang.RuntimeException: Unable to create service com.zipow.videobox.share.ScreenShareServiceForSDK: java.lang.IllegalArgumentException: com.example.test: Targeting S+ (version 31 and above) requires that one of FLAG_IMMUTABLE or FLAG_MUTABLE be specified when creating a PendingIntent.

Look into it.....

Faizan-Farooq commented 2 years ago

@evilrat any updates? running on a tight deadline here

ark-brighthustle commented 2 years ago

@evilrat any updates? running on a tight deadline here

email us at info@evilrattechnologies.com

Faizan-Farooq commented 2 years ago

@evilrat any updates? running on a tight deadline here

email us at info@evilrattechnologies.com

@evilrat sent you an email

Faizan-Farooq commented 2 years ago

@evilrat @Roopaish i got it to work. the issue was in the build.gradle file. my target and compile sdk both were set to 31. i changed the targetsdk to 30 and now its working. Although i believe you should make the targetsdk compatible to 31 or 32. @evilrat If you set the target sdk to 31 or 32 you will start getting the errors that we were getting

Roopaish commented 2 years ago

targetsdk to 30

Thanks for sharing! It worked.

Statyk7 commented 2 years ago

I'm seeing the same issue, and when I change the target and compile sdk to 30, I got: Warning: The plugin flutter_zoom_sdk requires Android SDK version 32. Any idea?

Statyk7 commented 2 years ago

I'm seeing the same issue, and when I change the target and compile sdk to 30, I got: Warning: The plugin flutter_zoom_sdk requires Android SDK version 32. Any idea?

Actually it doesn't crash with those settings (but still trying to make this package to work): targetSdkVersion 30 compileSdkVersion 32

Faizan-Farooq commented 2 years ago

I'm seeing the same issue, and when I change the target and compile sdk to 30, I got: Warning: The plugin flutter_zoom_sdk requires Android SDK version 32. Any idea?

Actually it doesn't crash with those settings (but still trying to make this package to work): targetSdkVersion 30 compileSdkVersion 32

it should work when you set targetsdk to 30 and compilesdk to 32

Statyk7 commented 2 years ago

I confirm it does work, thanks!

mayurdhurpate commented 2 years ago

As per Google Play Store policies, starting August 2022, apps are expected to target version 31 or higher (reference). Does the SDK now support version 31?

ark-brighthustle commented 2 years ago

We are almost done...will soon be releasing latest version with latest zoom sdk available

On Wed, Jul 6, 2022, 9:52 PM Mayur Dhurpate @.***> wrote:

As per Google Play Store policies, starting August 2022, apps are expected to target version 31 or higher (reference https://support.google.com/googleplay/android-developer/answer/11926878?hl=en). Does the SDK now support version 31?

— Reply to this email directly, view it on GitHub https://github.com/evilrat/flutter_zoom_sdk/issues/65#issuecomment-1176424459, or unsubscribe https://github.com/notifications/unsubscribe-auth/AMAAH4KX34QNCXOUHGN3OUDVSWXC5ANCNFSM5QPW6H3Q . You are receiving this because you were mentioned.Message ID: @.***>

Statyk7 commented 2 years ago

We are almost done...will soon be releasing latest version with latest zoom sdk available On Wed, Jul 6, 2022, 9:52 PM Mayur Dhurpate @.> wrote: As per Google Play Store policies, starting August 2022, apps are expected to target version 31 or higher (reference https://support.google.com/googleplay/android-developer/answer/11926878?hl=en). Does the SDK now support version 31? — Reply to this email directly, view it on GitHub <#65 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AMAAH4KX34QNCXOUHGN3OUDVSWXC5ANCNFSM5QPW6H3Q . You are receiving this because you were mentioned.Message ID: @.>

That's great to hear! Do you have any idea on when it will be release approximately? Thanks again for sharing this package!

ark-brighthustle commented 2 years ago

20th of july aprox

On Fri, Jul 8, 2022, 8:49 PM Remy Baudet @.***> wrote:

We are almost done...will soon be releasing latest version with latest zoom sdk available … <#m-1669497072884980674> On Wed, Jul 6, 2022, 9:52 PM Mayur Dhurpate @.> wrote: As per Google Play Store policies, starting August 2022, apps are expected to target version 31 or higher (reference https://support.google.com/googleplay/android-developer/answer/11926878?hl=en https://support.google.com/googleplay/android-developer/answer/11926878?hl=en). Does the SDK now support version 31? — Reply to this email directly, view it on GitHub <#65 (comment) https://github.com/evilrat/flutter_zoom_sdk/issues/65#issuecomment-1176424459>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AMAAH4KX34QNCXOUHGN3OUDVSWXC5ANCNFSM5QPW6H3Q https://github.com/notifications/unsubscribe-auth/AMAAH4KX34QNCXOUHGN3OUDVSWXC5ANCNFSM5QPW6H3Q . You are receiving this because you were mentioned.Message ID: @.>

That's great to hear! Do you have any idea on when it will be release approximately? Thanks again for sharing this package!

— Reply to this email directly, view it on GitHub https://github.com/evilrat/flutter_zoom_sdk/issues/65#issuecomment-1179105654, or unsubscribe https://github.com/notifications/unsubscribe-auth/AMAAH4IJ6HM2BVBSSSSDBHTVTBBJPANCNFSM5QPW6H3Q . You are receiving this because you were mentioned.Message ID: @.***>

anwaysomani commented 2 years ago

Is the new release with resolution out yet, as still getting the same errors?

Manojdaiya1992 commented 2 years ago

Hi @evilrat app is still crashing if using SDK 31. As per google policies we are not able to deploy our app on google store. Can you please let us know when this plugin will support the SDK 31?

EmadBeltaje commented 1 year ago

@evilrat any news buddy, still crushing on android 12 java.lang.RuntimeException: Unable to create service com.zipow.videobox.share.ScreenShareServiceForSDK: java.lang.IllegalArgumentException: com.evilratt.flutter_zoom_sdk_example: Targeting S+ (version 31 and above) requires that one of FLAG_IMMUTABLE or FLAG_MUTABLE be specified when creating a PendingIntent.

MayankSehgal21888 commented 1 year ago

@evilrat Please confirm if this has been released and if this works on Android 12. Our apps crash when using zoom meetings

rashidgondal commented 1 year ago

@evilrat Is there any update on this issue?

tunhnt2 commented 1 year ago

@evilrat Thank you for the effort but the issue still persists. It's working fine on other android versions. But not on my android 12 device. By the way, my device is Redmi Note 10 pro with MIUI 13.0.4 Global Stable version and android12 SKQ1.210908.001.

/om.example.tes(29239): open libmigui.so failed! dlopen - dlopen failed: library "libmigui.so" not found
D/DecorView[](29239): onWindowFocusChanged hasWindowFocus true
I/ZoomSDK (29239): initialize context is android.app.Application@dd3729b
I/EngineFactory(29239): Provider GmsCore_OpenSSL not available
I/AudioManager(29239): In isBluetoothScoAvailableOffCall(), calling appilication: com.example.test, return value: true
I/AudioManager(29239): In isBluetoothScoOn(), calling application: com.example.test
D/BluetoothHeadset(29239): Binding service...
W/om.example.tes(29239): Long monitor contention with owner main (29239) at com.zipow.videobox.VideoBoxApplication com.zipow.videobox.VideoBoxApplication.getNonNullInstance()(VideoBoxApplication.java:1) waiters=0 in com.zipow.videobox.VideoBoxApplication com.zipow.videobox.VideoBoxApplication.getInstance() for 155ms
I/flutter (29239): listen on event channel
I/flutter (29239): true
D/IS_CTS_MODE(29239): true
D/MULTI_WINDOW_SWITCH_ENABLED(29239): false
D/DecorView[](29239): getWindowModeFromSystem  windowmode is 1
2
E/om.example.tes(29239): No implementation found for long com.zipow.videobox.sip.server.SIPCallEventListenerUI.nativeInit() (tried Java_com_zipow_videobox_sip_server_SIPCallEventListenerUI_nativeInit and Java_com_zipow_videobox_sip_server_SIPCallEventListenerUI_nativeInit__)
D/AndroidRuntime(29239): Shutting down VM
E/AndroidRuntime(29239): FATAL EXCEPTION: main
E/AndroidRuntime(29239): Process: com.example.test, PID: 29239
...

red mi c10 same issue

vivekmathew006 commented 1 year ago

@evilrat Thank you for the effort but the issue still persists. It's working fine on other android versions. But not on my android 12 device. By the way, my device is Redmi Note 10 pro with MIUI 13.0.4 Global Stable version and android12 SKQ1.210908.001.

/om.example.tes(29239): open libmigui.so failed! dlopen - dlopen failed: library "libmigui.so" not found
D/DecorView[](29239): onWindowFocusChanged hasWindowFocus true
I/ZoomSDK (29239): initialize context is android.app.Application@dd3729b
I/EngineFactory(29239): Provider GmsCore_OpenSSL not available
I/AudioManager(29239): In isBluetoothScoAvailableOffCall(), calling appilication: com.example.test, return value: true
I/AudioManager(29239): In isBluetoothScoOn(), calling application: com.example.test
D/BluetoothHeadset(29239): Binding service...
W/om.example.tes(29239): Long monitor contention with owner main (29239) at com.zipow.videobox.VideoBoxApplication com.zipow.videobox.VideoBoxApplication.getNonNullInstance()(VideoBoxApplication.java:1) waiters=0 in com.zipow.videobox.VideoBoxApplication com.zipow.videobox.VideoBoxApplication.getInstance() for 155ms
I/flutter (29239): listen on event channel
I/flutter (29239): true
D/IS_CTS_MODE(29239): true
D/MULTI_WINDOW_SWITCH_ENABLED(29239): false
D/DecorView[](29239): getWindowModeFromSystem  windowmode is 1
2
E/om.example.tes(29239): No implementation found for long com.zipow.videobox.sip.server.SIPCallEventListenerUI.nativeInit() (tried Java_com_zipow_videobox_sip_server_SIPCallEventListenerUI_nativeInit and Java_com_zipow_videobox_sip_server_SIPCallEventListenerUI_nativeInit__)
D/AndroidRuntime(29239): Shutting down VM
E/AndroidRuntime(29239): FATAL EXCEPTION: main
E/AndroidRuntime(29239): Process: com.example.test, PID: 29239
...

red mi c10 same issue

i've also got the same issue in OnePlus Nord Android 12.

Hoiss commented 1 year ago

I see this issue on specific Xiaomi devices like e.g. the Redmi 10C: E/.testcollector11716): open libmigui.so failed! dlopen - dlopen failed: library "libmigui.so" not found D/DecorView[](11716): onWindowFocusChanged hasWindowFocus true Can't find any solution for it. The app seems(!) to work, but I have e.g. bluetooth problems that I do not have on other devices with the same spec.