protected static unsafe int SendGroupRequestNative(global::Com.Aliyun.Alink.Linksdk.Alcs.Data.Ica.ICAGroupReqMessage p0, global::Com.Aliyun.Alink.Linksdk.Alcs.Data.Ica.ICAAuthParams p1, global::Com.Aliyun.Alink.Linksdk.Alcs.Api.ICAMsgListener p2)
        {
            const string __id = "sendGroupRequestNative.(Lcom/aliyun/alink/linksdk/alcs/data/ica/ICAGroupReqMessage;Lcom/aliyun/alink/linksdk/alcs/data/ica/ICAAuthParams;Lcom/aliyun/alink/linksdk/alcs/api/ICAMsgListener;)I";

            try {
                JniArgumentValue *__args = stackalloc JniArgumentValue [3];
                __args [0] = new JniArgumentValue((p0 == null) ? IntPtr.Zero : ((global::Java.Lang.Object)p0).Handle);
                __args [1] = new JniArgumentValue((p1 == null) ? IntPtr.Zero : ((global::Java.Lang.Object)p1).Handle);
                __args [2] = new JniArgumentValue((p2 == null) ? IntPtr.Zero : ((global::Java.Lang.Object)p2).Handle);
                var __rm = _members.StaticMethods.InvokeInt32Method(__id, __args);
                return(__rm);
            } finally {
            }
        }
        protected static unsafe int ConnectDeviceNative(string p0, int p1, global::Com.Aliyun.Alink.Linksdk.Alcs.Data.Ica.ICADeviceInfo p2, global::Com.Aliyun.Alink.Linksdk.Alcs.Data.Ica.ICAAuthParams p3, global::Com.Aliyun.Alink.Linksdk.Alcs.Api.ICAConnectListener p4)
        {
            const string __id      = "connectDeviceNative.(Ljava/lang/String;ILcom/aliyun/alink/linksdk/alcs/data/ica/ICADeviceInfo;Lcom/aliyun/alink/linksdk/alcs/data/ica/ICAAuthParams;Lcom/aliyun/alink/linksdk/alcs/api/ICAConnectListener;)I";
            IntPtr       native_p0 = JNIEnv.NewString(p0);

            try {
                JniArgumentValue *__args = stackalloc JniArgumentValue [5];
                __args [0] = new JniArgumentValue(native_p0);
                __args [1] = new JniArgumentValue(p1);
                __args [2] = new JniArgumentValue((p2 == null) ? IntPtr.Zero : ((global::Java.Lang.Object)p2).Handle);
                __args [3] = new JniArgumentValue((p3 == null) ? IntPtr.Zero : ((global::Java.Lang.Object)p3).Handle);
                __args [4] = new JniArgumentValue((p4 == null) ? IntPtr.Zero : ((global::Java.Lang.Object)p4).Handle);
                var __rm = _members.StaticMethods.InvokeInt32Method(__id, __args);
                return(__rm);
            } finally {
                JNIEnv.DeleteLocalRef(native_p0);
            }
        }
        public static unsafe bool SendGroupRequest(global::Com.Aliyun.Alink.Linksdk.Alcs.Data.Ica.ICAGroupReqMessage groupReqMessage, global::Com.Aliyun.Alink.Linksdk.Alcs.Data.Ica.ICAAuthParams authInfo, global::Com.Aliyun.Alink.Linksdk.Alcs.Api.ICAMsgListener @callback)
        {
            const string __id = "sendGroupRequest.(Lcom/aliyun/alink/linksdk/alcs/data/ica/ICAGroupReqMessage;Lcom/aliyun/alink/linksdk/alcs/data/ica/ICAAuthParams;Lcom/aliyun/alink/linksdk/alcs/api/ICAMsgListener;)Z";

            try {
                JniArgumentValue *__args = stackalloc JniArgumentValue [3];
                __args [0] = new JniArgumentValue((groupReqMessage == null) ? IntPtr.Zero : ((global::Java.Lang.Object)groupReqMessage).Handle);
                __args [1] = new JniArgumentValue((authInfo == null) ? IntPtr.Zero : ((global::Java.Lang.Object)authInfo).Handle);
                __args [2] = new JniArgumentValue((@callback == null) ? IntPtr.Zero : ((global::Java.Lang.Object)@callback).Handle);
                var __rm = _members.StaticMethods.InvokeBooleanMethod(__id, __args);
                return(__rm);
            } finally {
            }
        }
        public unsafe ICAConnectParams(global::Com.Aliyun.Alink.Linksdk.Alcs.Data.Ica.ICADeviceInfo deviceInfo, string pal, global::Com.Aliyun.Alink.Linksdk.Alcs.Data.Ica.ICAAuthParams authInfo)
            : base(IntPtr.Zero, JniHandleOwnership.DoNotTransfer)
        {
            const string __id = "(Lcom/aliyun/alink/linksdk/alcs/data/ica/ICADeviceInfo;Ljava/lang/String;Lcom/aliyun/alink/linksdk/alcs/data/ica/ICAAuthParams;)V";

            if (((global::Java.Lang.Object) this).Handle != IntPtr.Zero)
            {
                return;
            }

            IntPtr native_pal = JNIEnv.NewString(pal);

            try {
                JniArgumentValue *__args = stackalloc JniArgumentValue [3];
                __args [0] = new JniArgumentValue((deviceInfo == null) ? IntPtr.Zero : ((global::Java.Lang.Object)deviceInfo).Handle);
                __args [1] = new JniArgumentValue(native_pal);
                __args [2] = new JniArgumentValue((authInfo == null) ? IntPtr.Zero : ((global::Java.Lang.Object)authInfo).Handle);
                var __r = _members.InstanceMethods.StartCreateInstance(__id, ((object)this).GetType(), __args);
                SetHandle(__r.Handle, JniHandleOwnership.TransferLocalRef);
                _members.InstanceMethods.FinishCreateInstance(__id, this, __args);
            } finally {
                JNIEnv.DeleteLocalRef(native_pal);
            }
        }