예제 #1
0
        /**
         * 打开设备
         */
        private void openDevice()
        {
            if (myInterface != null)
            {
                UsbDeviceConnection conn = null;
                // 在open前判断是否有连接权限;对于连接权限可以静态分配,也可以动态分配权限,可以查阅相关资料
                if (myUsbManager.HasPermission(myUsbDevice))
                {
                    conn = myUsbManager.OpenDevice(myUsbDevice);
                }

                if (conn == null)
                {
                    return;
                }

                if (conn.ClaimInterface(myInterface, true))
                {
                    myDeviceConnection = conn; // 到此你的android设备已经连上HID设备
                    Log.Debug(TAG, "打开设备成功");
                }
                else
                {
                    conn.Close();
                }
            }
        }
 /// <summary>
 /// 释放连接
 /// </summary>
 public void Close()
 {
     if (myDeviceConnection != null)
     {
         myDeviceConnection.Close();
         myDeviceConnection = null;
     }
 }
예제 #3
0
 public void onDestroy()
 {
     if (mConnection != null)
     {
         mConnection.ReleaseInterface(mIntf);
         mConnection.Close();
     }
 }
예제 #4
0
        public void Close()
        {
            if (!connected)
            {
                return;
            }

            pinListenerThreadRunning = false;
            pinListenerThread.Join();

            connection.Close();
            connected = false;
        }
        /**
         * 打开设备
         */
        private int openDevice()
        {
            int err = 0;

            if (myInterface != null)
            {
                UsbDeviceConnection conn = null;
                // 在open前判断是否有连接权限;对于连接权限可以静态分配,也可以动态分配权限,可以查阅相关资料
                // conn = myUsbManager.OpenDevice(myUsbDevice);
                if (myUsbManager.HasPermission(myUsbDevice))
                {
                    conn = myUsbManager.OpenDevice(myUsbDevice);
                }
                else
                {
                    err = (int)PrintError.NoPermission;
                    Log.Debug("err", "没有连接权限");
                    return(err);
                }

                if (conn.ClaimInterface(myInterface, true))
                {
                    myDeviceConnection = conn; // 到此你的android设备已经连上HID设备
                    Log.Debug("info", "连接HID设备成功");
                    err = 1;
                    return(err);
                }
                else
                {
                    err = (int)PrintError.ConnectedFailure;
                    Log.Debug("err", "连接HID设备失败");
                    conn.Close();
                    return(err);
                }
            }
            else
            {
                err = (int)PrintError.Error;
                return(err);
            }
        }
예제 #6
0
        /// <summary>
        ///
        /// </summary>
        public override void Close()
        {
            // Forcibly close the read thread.
            if (m_ReadThread != null)
            {
                m_ReadThread.Abort(); m_ReadThread = null;
            }
            if (m_IsOpen)
            {
                //
                m_UsbConnection.ReleaseInterface(m_UsbIntf);
                m_UsbConnection.Close();

                // Clean up
                UsbManager.main.onUsbDeviceAttached -= OnUsbDeviceAttached;
                UsbManager.main.onUsbDeviceDetached -= OnUsbDeviceDetached;
                AndroidPtr.Free(ref m_UsbDevice);
                AndroidPtr.Free(ref m_UsbIntf);
                AndroidPtr.Free(ref m_UsbConnection);
                AndroidPtr.Free(ref m_UsbReqIn);
                //
                m_IsOpen = false;
            }
        }
 public override void Close()
 {
     _connection.Close();
 }
예제 #8
0
 public void Dispose()
 {
     _interruptListenerThread?.Abort();
     _connection?.ReleaseInterface(_interface);
     _connection?.Close();
 }
예제 #9
0
 public override void Close()
 {
     _UsbDeviceConnection?.Close();
     base.Close();
 }