public unsafe CharacterWriteReliable(string mac, global::Com.Vivalnk.Sdk.Common.Ble.Connect.Request.CharacterWriteReliable.ICharacterWriteReliableListener listener, global::Java.Util.UUID service, global::Java.Util.UUID character, byte[] value)
            : base(IntPtr.Zero, JniHandleOwnership.DoNotTransfer)
        {
            const string __id = "(Ljava/lang/String;Lcom/vivalnk/sdk/common/ble/connect/request/CharacterWriteReliable$CharacterWriteReliableListener;Ljava/util/UUID;Ljava/util/UUID;[B)V";

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

            IntPtr native_mac   = JNIEnv.NewString(mac);
            IntPtr native_value = JNIEnv.NewArray(value);

            try {
                JniArgumentValue *__args = stackalloc JniArgumentValue [5];
                __args [0] = new JniArgumentValue(native_mac);
                __args [1] = new JniArgumentValue((listener == null) ? IntPtr.Zero : ((global::Java.Lang.Object)listener).Handle);
                __args [2] = new JniArgumentValue((service == null) ? IntPtr.Zero : ((global::Java.Lang.Object)service).Handle);
                __args [3] = new JniArgumentValue((character == null) ? IntPtr.Zero : ((global::Java.Lang.Object)character).Handle);
                __args [4] = new JniArgumentValue(native_value);
                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_mac);
                if (value != null)
                {
                    JNIEnv.CopyArray(native_value, value);
                    JNIEnv.DeleteLocalRef(native_value);
                }
            }
        }
        public virtual unsafe void WriteCharacteristicReliable(global::Java.Util.UUID service, global::Java.Util.UUID character, byte[] value, global::Com.Vivalnk.Sdk.Common.Ble.Connect.Request.CharacterWriteReliable.ICharacterWriteReliableListener listener, bool loggable)
        {
            const string __id         = "writeCharacteristicReliable.(Ljava/util/UUID;Ljava/util/UUID;[BLcom/vivalnk/sdk/common/ble/connect/request/CharacterWriteReliable$CharacterWriteReliableListener;Z)V";
            IntPtr       native_value = JNIEnv.NewArray(value);

            try {
                JniArgumentValue *__args = stackalloc JniArgumentValue [5];
                __args [0] = new JniArgumentValue((service == null) ? IntPtr.Zero : ((global::Java.Lang.Object)service).Handle);
                __args [1] = new JniArgumentValue((character == null) ? IntPtr.Zero : ((global::Java.Lang.Object)character).Handle);
                __args [2] = new JniArgumentValue(native_value);
                __args [3] = new JniArgumentValue((listener == null) ? IntPtr.Zero : ((global::Java.Lang.Object)listener).Handle);
                __args [4] = new JniArgumentValue(loggable);
                _members.InstanceMethods.InvokeVirtualVoidMethod(__id, this, __args);
            } finally {
                if (value != null)
                {
                    JNIEnv.CopyArray(native_value, value);
                    JNIEnv.DeleteLocalRef(native_value);
                }
            }
        }