Procházet zdrojové kódy

没有bulk传输的版本

robbin před 3 roky
rodič
revize
534c3a0097

+ 2 - 2
app/build.gradle

@@ -7,14 +7,14 @@ android {
         minSdkVersion 18
         targetSdkVersion 28
         versionCode 1
-        versionName "2.1"
+        versionName "2.0.1"
         testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
     }
     android.applicationVariants.all {
         variant ->
             variant.outputs.all{
                 //´Ë´¦Ö¸¶¨Éú³ÉµÄapkÎļþÃû
-                outputFileName = "WingCoolAPK_V2.1.0_20211029.apk"
+                outputFileName = "WingCoolAPK_V2.0.1_20211102.apk"
             }
     }
     lintOptions {

+ 37 - 53
app/src/main/java/com/example/administrator/wingcool_gt9_apk/Config.java

@@ -1881,65 +1881,49 @@ public class Config extends AppCompatActivity
                 {
                     if (mUsbManager.hasPermission(usbDevice)) {
 
-                        mUsbDeviceConnection = mUsbManager.openDevice(usbDevice);
-                        if (mUsbDeviceConnection != null) {
+                        UsbInterface usbInterface = usbDevice.getInterface(1);
 
-                            int interfaceCount = usbDevice.getInterfaceCount();
-                           // for (int interfaceIndex = 0; interfaceIndex < interfaceCount; interfaceIndex++)
-                            {
-                               // UsbInterface usbInterface = usbDevice.getInterface(interfaceIndex);
-                                UsbInterface usbInterface = usbDevice.getInterface(1);
+                        for (int i = 0; i < usbInterface.getEndpointCount(); i++) {
+                            UsbEndpoint ep = usbInterface.getEndpoint(i);
 
-                                if(UsbConstants.USB_CLASS_HID != usbInterface.getInterfaceClass())
-                                {
-                                    // continue;
-                                }
-
-                                for (int i = 0; i < usbInterface.getEndpointCount(); i++) {
-                                    UsbEndpoint ep = usbInterface.getEndpoint(i);
-
-                                    if (ep.getType() == UsbConstants.USB_ENDPOINT_XFER_BULK) {
-                                        if (ep.getDirection() == UsbConstants.USB_DIR_OUT) {
-                                            //mUsbEndpointIn = ep;
-                                            mUsbEndpointOut = ep;
-                                        } else {
-                                            //mUsbEndpointOut = ep;
-                                            mUsbEndpointIn = ep;
-                                        }
-                                    }
-                                    else{
-                                        // mHandler.sendEmptyMessage(CONNECTED_SUCCESS);
-                                    }
-                                }
-
-                                if ((null == mUsbEndpointIn) || (null == mUsbEndpointOut)) {
-                                    int i = mUsbDeviceConnection.controlTransfer(0x00, 0x09,
-                                            0x002, 0, null, 0, 100);
-                                    SystemClock.sleep(1000);
-                                     if(i>=0){
-                                         //mHandler.sendEmptyMessage(DEBUG_MESSAGE_SUCCESS);
-                                         }
-                                         else{
-                                         //mHandler.sendEmptyMessage(DEBUG_MESSAGE_ERROR);
-                                         }
+                            if (ep.getDirection() == UsbConstants.USB_DIR_OUT) {
+                                //mUsbEndpointIn = ep;
+                                mUsbEndpointOut = ep;
+                            } else {
+                                //mUsbEndpointOut = ep;
+                                mUsbEndpointIn = ep;
+                            }
+                        }
 
+                        if ((null == mUsbEndpointIn) || (null == mUsbEndpointOut)) {
+                            mUsbDeviceConnection = mUsbManager.openDevice(usbDevice);
+                            if (mUsbDeviceConnection!=null) {
+                                int i = mUsbDeviceConnection.controlTransfer(0x00, 0x09,
+                                        0x002, 0, null, 0, 100);
+                                SystemClock.sleep(1000);
+                                if (i >= 0) {
+                                    //mHandler.sendEmptyMessage(DEBUG_MESSAGE_SUCCESS);
                                 } else {
-                                    isNeedFindDevice = false;
-                                    mUsbInterface = usbInterface;
-                                    mUsbDeviceConnection = mUsbManager.openDevice(usbDevice);
-                                    if(null != mUsbEndpointIn){
-                                        iProductId = usbDevice.getProductId();
-                                        if ((iProductId == 0x0819) || (iProductId == 0x8191))
-                                        {
-                                            byProductType = GT7;
-                                        }
-                                        else{
-                                            byProductType = GT9;
-                                        }
-                                        mHandler.sendEmptyMessage(CONNECTED_SUCCESS);
-                                    }
+                                    //mHandler.sendEmptyMessage(DEBUG_MESSAGE_ERROR);
                                 }
                             }
+                        } else {
+                            isNeedFindDevice = false;
+                            mUsbInterface = usbInterface;
+                            mUsbDeviceConnection = mUsbManager.openDevice(usbDevice);
+                            mUsbDeviceConnection.claimInterface(mUsbInterface, true);
+                            if(null != mUsbEndpointIn){
+                                iProductId = usbDevice.getProductId();
+                                if ((iProductId == 0x0819) || (iProductId == 0x8191))
+                                {
+                                    byProductType = GT7;
+                                }
+                                else{
+                                    byProductType = GT9;
+                                }
+                                mHandler.sendEmptyMessage(CONNECTED_SUCCESS);
+                            }
+
 
                         }
                     } else {

+ 33 - 55
app/src/main/java/com/example/administrator/wingcool_gt9_apk/DataAnalysis.java

@@ -704,67 +704,45 @@ public class DataAnalysis extends AppCompatActivity
                 {
                     if (mUsbManager.hasPermission(usbDevice)) {
 
-                        mUsbDeviceConnection = mUsbManager.openDevice(usbDevice);
-                        if (mUsbDeviceConnection != null) {
+                        UsbInterface usbInterface = usbDevice.getInterface(1);
 
-                            int interfaceCount = usbDevice.getInterfaceCount();
-                            // for (int interfaceIndex = 0; interfaceIndex < interfaceCount; interfaceIndex++)
-                            {
-                                // UsbInterface usbInterface = usbDevice.getInterface(interfaceIndex);
-                                UsbInterface usbInterface = usbDevice.getInterface(1);
-
-                                if(UsbConstants.USB_CLASS_HID != usbInterface.getInterfaceClass())
-                                {
-                                    // continue;
-                                }
+                        for (int i = 0; i < usbInterface.getEndpointCount(); i++) {
+                            UsbEndpoint ep = usbInterface.getEndpoint(i);
 
-                                for (int i = 0; i < usbInterface.getEndpointCount(); i++) {
-                                    UsbEndpoint ep = usbInterface.getEndpoint(i);
-                                    if (ep.getType() == UsbConstants.USB_ENDPOINT_XFER_BULK) {
-                                        if (ep.getDirection() == UsbConstants.USB_DIR_OUT) {
-                                            //mUsbEndpointIn = ep;
-                                            mUsbEndpointOut = ep;
-                                        } else {
-                                            //mUsbEndpointOut = ep;
-                                            mUsbEndpointIn = ep;
-                                        }
-                                    }
-                                    else{
-                                        // mHandler.sendEmptyMessage(CONNECTED_SUCCESS);
-                                    }
-                                }
-
-                                if ((null == mUsbEndpointIn) || (null == mUsbEndpointOut)) {
-                                    int i = mUsbDeviceConnection.controlTransfer(0x00, 0x09,
-                                            0x002, 0, null, 0, 100);
-                                    SystemClock.sleep(1000);
-                                    if(i>=0){
-                                        //mHandler.sendEmptyMessage(DEBUG_MESSAGE_SUCCESS);
-                                    }
-                                    else{
+                            if (ep.getDirection() == UsbConstants.USB_DIR_OUT) {
+                                //mUsbEndpointIn = ep;
+                                mUsbEndpointOut = ep;
+                            } else {
+                                //mUsbEndpointOut = ep;
+                                mUsbEndpointIn = ep;
+                            }
+                        }
 
-                                    }
+                        if ((null == mUsbEndpointIn) || (null == mUsbEndpointOut)) {
+                            mUsbDeviceConnection = mUsbManager.openDevice(usbDevice);
+                            if (mUsbDeviceConnection!=null) {
+                                int i = mUsbDeviceConnection.controlTransfer(0x00, 0x09,
+                                        0x002, 0, null, 0, 100);
+                                SystemClock.sleep(1000);
+                                if (i >= 0) {
+                                    //mHandler.sendEmptyMessage(DEBUG_MESSAGE_SUCCESS);
                                 } else {
-
-                                    //if(0x80 == mUsbEndpointIn)
-                                    //mlog1.setEnabled(true);
-                                    //isDetached = true;
-                                    isNeedFindDevice = false;
-                                    // mSendMessage.setEnabled(true);
-
-                                    mUsbInterface = usbInterface;
-                                    mUsbDeviceConnection = mUsbManager.openDevice(usbDevice);
-                                    if(null != mUsbEndpointIn){
-                                        iProductId = usbDevice.getProductId();
-                                        if ((iProductId == 0x0819) || (iProductId == 0x8191))
-                                        {
-                                            byProductType = GT7;
-                                        }
-                                        mHandler.sendEmptyMessage(CONNECTED_SUCCESS);
-                                    }
+                                    //mHandler.sendEmptyMessage(DEBUG_MESSAGE_ERROR);
                                 }
                             }
-
+                        } else {
+                            isNeedFindDevice = false;
+                            mUsbInterface = usbInterface;
+                            mUsbDeviceConnection = mUsbManager.openDevice(usbDevice);
+                            mUsbDeviceConnection.claimInterface(mUsbInterface, true);
+                            if(null != mUsbEndpointIn){
+                                iProductId = usbDevice.getProductId();
+                                if ((iProductId == 0x0819) || (iProductId == 0x8191))
+                                {
+                                    byProductType = GT7;
+                                }
+                                mHandler.sendEmptyMessage(CONNECTED_SUCCESS);
+                            }
                         }
                     } else {
                         mUsbManager.requestPermission(usbDevice, PendingIntent.getBroadcast(mContext, 0, new Intent(""), 0));

+ 36 - 58
app/src/main/java/com/example/administrator/wingcool_gt9_apk/FirmwareUpdate.java

@@ -410,69 +410,47 @@ public class FirmwareUpdate extends AppCompatActivity
 
                     if (mUsbManager.hasPermission(usbDevice)) {
 
-                        mUsbDeviceConnection = mUsbManager.openDevice(usbDevice);
-                        if (mUsbDeviceConnection != null) {
+                        UsbInterface usbInterface = usbDevice.getInterface(1);
 
-                            int interfaceCount = usbDevice.getInterfaceCount();
-                            // for (int interfaceIndex = 0; interfaceIndex < interfaceCount; interfaceIndex++)
-                            {
-                                // UsbInterface usbInterface = usbDevice.getInterface(interfaceIndex);
-                                UsbInterface usbInterface = usbDevice.getInterface(1);
+                        for (int i = 0; i < usbInterface.getEndpointCount(); i++) {
+                            UsbEndpoint ep = usbInterface.getEndpoint(i);
 
-                                if(UsbConstants.USB_CLASS_HID != usbInterface.getInterfaceClass())
-                                {
-                                    // continue;
-                                }
-
-                                for (int i = 0; i < usbInterface.getEndpointCount(); i++) {
-                                    UsbEndpoint ep = usbInterface.getEndpoint(i);
-                                    if (ep.getType() == UsbConstants.USB_ENDPOINT_XFER_BULK) {
-                                        if (ep.getDirection() == UsbConstants.USB_DIR_OUT) {
-                                            //mUsbEndpointIn = ep;
-                                            mUsbEndpointOut = ep;
-                                        } else {
-                                            //mUsbEndpointOut = ep;
-                                            mUsbEndpointIn = ep;
-                                        }
-                                    }
-                                    else{
-                                        // mHandler.sendEmptyMessage(CONNECTED_SUCCESS);
-                                    }
-                                }
-
-                                if ((null == mUsbEndpointIn) || (null == mUsbEndpointOut)) {
-                                    //if ((null == mUsbEndpointIn) && (null == mUsbEndpointOut)) {
-                                    // tvInfo.append("endpoint is null\n");
-                                    int i = mUsbDeviceConnection.controlTransfer(0x00, 0x09,
-                                            0x002, 0, null, 0, 100);
-                                    SystemClock.sleep(1000);
-                                    if(i>=0){
-                                        //mHandler.sendEmptyMessage(DEBUG_MESSAGE_SUCCESS);
-                                    }
-                                    else{
-                                        //mHandler.sendEmptyMessage(DEBUG_MESSAGE_ERROR);
-                                    }
+                            if (ep.getDirection() == UsbConstants.USB_DIR_OUT) {
+                                //mUsbEndpointIn = ep;
+                                mUsbEndpointOut = ep;
+                            } else {
+                                //mUsbEndpointOut = ep;
+                                mUsbEndpointIn = ep;
+                            }
+                        }
 
+                        if ((null == mUsbEndpointIn) || (null == mUsbEndpointOut)) {
+                            mUsbDeviceConnection = mUsbManager.openDevice(usbDevice);
+                            if (mUsbDeviceConnection!=null) {
+                                int i = mUsbDeviceConnection.controlTransfer(0x00, 0x09,
+                                        0x002, 0, null, 0, 100);
+                                SystemClock.sleep(1000);
+                                if (i >= 0) {
+                                    //mHandler.sendEmptyMessage(DEBUG_MESSAGE_SUCCESS);
                                 } else {
-                                    //if(0x80 == mUsbEndpointIn)
-                                    //mlog1.setEnabled(true);
-                                    //isDetached = true;
-                                    isNeedFindDevice = false;
-                                    // mSendMessage.setEnabled(true);
-
-                                    mUsbInterface = usbInterface;
-                                    mUsbDeviceConnection = mUsbManager.openDevice(usbDevice);
-                                    if(null != mUsbEndpointIn){
-                                        iProductId = usbDevice.getProductId();
-                                        if ((iProductId == 0x0819) || (iProductId == 0x8191))
-                                        {
-                                            byProductType = GT7;
-                                        }else{
-                                            byProductType = GT9;
-                                        }
-                                        mHandler.sendEmptyMessage(CONNECTED_SUCCESS);
-                                    }
+                                    //mHandler.sendEmptyMessage(DEBUG_MESSAGE_ERROR);
+                                }
+                            }
+                        } else {
+
+                            isNeedFindDevice = false;
+                            mUsbInterface = usbInterface;
+                            mUsbDeviceConnection = mUsbManager.openDevice(usbDevice);
+                            mUsbDeviceConnection.claimInterface(mUsbInterface, true);
+                            if(null != mUsbEndpointIn){
+                                iProductId = usbDevice.getProductId();
+                                if ((iProductId == 0x0819) || (iProductId == 0x8191))
+                                {
+                                    byProductType = GT7;
+                                }else{
+                                    byProductType = GT9;
                                 }
+                                mHandler.sendEmptyMessage(CONNECTED_SUCCESS);
                             }
                         }
                     } else {

+ 32 - 49
app/src/main/java/com/example/administrator/wingcool_gt9_apk/GT9MainActivity.java

@@ -625,62 +625,45 @@ public class GT9MainActivity extends AppCompatActivity
                 {
 
                     if (mUsbManager.hasPermission(usbDevice)) {
+                        UsbInterface usbInterface = usbDevice.getInterface(1);
 
-                        mUsbDeviceConnection = mUsbManager.openDevice(usbDevice);
-                        if (mUsbDeviceConnection != null) {
+                        for (int i = 0; i < usbInterface.getEndpointCount(); i++) {
+                            UsbEndpoint ep = usbInterface.getEndpoint(i);
 
-                            {
-
-                                UsbInterface usbInterface = usbDevice.getInterface(1);
-
-                                if(UsbConstants.USB_CLASS_HID != usbInterface.getInterfaceClass())
-                                {
-                                    // continue;
-                                }
-
-                                for (int i = 0; i < usbInterface.getEndpointCount(); i++) {
-                                    UsbEndpoint ep = usbInterface.getEndpoint(i);
-                                    if (ep.getType() == UsbConstants.USB_ENDPOINT_XFER_BULK) {
-                                        if (ep.getDirection() == UsbConstants.USB_DIR_OUT) {
-                                            //mUsbEndpointIn = ep;
-                                            mUsbEndpointOut = ep;
-                                        } else {
-                                            //mUsbEndpointOut = ep;
-                                            mUsbEndpointIn = ep;
-                                        }
-                                    }
-                                    else{
-                                        // mHandler.sendEmptyMessage(CONNECTED_SUCCESS);
-                                    }
-                                }
-                                if ((null == mUsbEndpointIn) || (null == mUsbEndpointOut)) {
+                            if (ep.getDirection() == UsbConstants.USB_DIR_OUT) {
+                                //mUsbEndpointIn = ep;
+                                mUsbEndpointOut = ep;
+                            } else {
+                                //mUsbEndpointOut = ep;
+                                mUsbEndpointIn = ep;
+                            }
+                        }
 
-                                    int i = mUsbDeviceConnection.controlTransfer(0x00, 0x09,
-                                            0x002, 0, null, 0, 100);
-                                    SystemClock.sleep(1000);
-                                    if(i>=0){
-                                        //mHandler.sendEmptyMessage(DEBUG_MESSAGE_SUCCESS);
-                                    }
-                                    else{
-                                        //mHandler.sendEmptyMessage(DEBUG_MESSAGE_ERROR);
-                                    }
+                        if ((null == mUsbEndpointIn) || (null == mUsbEndpointOut)) {
+                            mUsbDeviceConnection = mUsbManager.openDevice(usbDevice);
+                            if (mUsbDeviceConnection!=null) {
+                                int i = mUsbDeviceConnection.controlTransfer(0x00, 0x09,
+                                        0x002, 0, null, 0, 100);
+                                SystemClock.sleep(1000);
+                                if (i >= 0) {
+                                    //mHandler.sendEmptyMessage(DEBUG_MESSAGE_SUCCESS);
                                 } else {
-                                    //if(0x80 == mUsbEndpointIn)
-                                    //mlog1.setEnabled(true);
-                                    isNeedFindDevice = false;
-                                    // mSendMessage.setEnabled(true);
-
-                                    mUsbInterface = usbInterface;
-                                    mUsbDeviceConnection = mUsbManager.openDevice(usbDevice);
-                                    if(null != mUsbEndpointIn){
-                                        iProductId = usbDevice.getProductId();
-                                        mHandler.sendEmptyMessage(CONNECTED_SUCCESS);
-                                    }
-
+                                    //mHandler.sendEmptyMessage(DEBUG_MESSAGE_ERROR);
                                 }
                             }
+                        } else {
+                            isNeedFindDevice = false;
+                            mUsbInterface = usbInterface;
+                            mUsbDeviceConnection = mUsbManager.openDevice(usbDevice);
+                            mUsbDeviceConnection.claimInterface(mUsbInterface, true);
+                            if(null != mUsbEndpointIn){
+                                iProductId = usbDevice.getProductId();
+                                mHandler.sendEmptyMessage(CONNECTED_SUCCESS);
+                            }
                         }
-                    } else {
+
+                    }
+                    else {
                         mUsbManager.requestPermission(usbDevice, PendingIntent.getBroadcast(mShowID, 0, new Intent(""), 0));
                     }
                 }

+ 28 - 48
app/src/main/java/com/example/administrator/wingcool_gt9_apk/IICOperation.java

@@ -452,61 +452,41 @@ public class IICOperation extends AppCompatActivity
 
                     if (mUsbManager.hasPermission(usbDevice)) {
 
-                        mUsbDeviceConnection = mUsbManager.openDevice(usbDevice);
-                        if (mUsbDeviceConnection != null) {
+                        UsbInterface usbInterface = usbDevice.getInterface(1);
 
-                            int interfaceCount = usbDevice.getInterfaceCount();
-                            // for (int interfaceIndex = 0; interfaceIndex < interfaceCount; interfaceIndex++)
-                            {
-                                UsbInterface usbInterface = usbDevice.getInterface(1);
-
-                                if(UsbConstants.USB_CLASS_HID != usbInterface.getInterfaceClass())
-                                {
-                                    // continue;
-                                }
-
-                                for (int i = 0; i < usbInterface.getEndpointCount(); i++) {
-                                    UsbEndpoint ep = usbInterface.getEndpoint(i);
-
-                                    if (ep.getType() == UsbConstants.USB_ENDPOINT_XFER_BULK) {
-                                        if (ep.getDirection() == UsbConstants.USB_DIR_OUT) {
-                                            //mUsbEndpointIn = ep;
-                                            mUsbEndpointOut = ep;
-                                        } else {
-                                            //mUsbEndpointOut = ep;
-                                            mUsbEndpointIn = ep;
-                                        }
-                                    }
-                                    else{
-                                        // mHandler.sendEmptyMessage(CONNECTED_SUCCESS);
-                                    }
-                                }
-
-                                if ((null == mUsbEndpointIn) || (null == mUsbEndpointOut)) {
+                        for (int i = 0; i < usbInterface.getEndpointCount(); i++) {
+                            UsbEndpoint ep = usbInterface.getEndpoint(i);
 
-                                    int i = mUsbDeviceConnection.controlTransfer(0x00, 0x09,
-                                            0x002, 0, null, 0, 100);
-                                    SystemClock.sleep(1000);
-                                    if(i>=0){
-                                        //mHandler.sendEmptyMessage(DEBUG_MESSAGE_SUCCESS);
-                                    }
-                                    else{
-                                        //mHandler.sendEmptyMessage(DEBUG_MESSAGE_ERROR);
-                                    }
+                            if (ep.getDirection() == UsbConstants.USB_DIR_OUT) {
+                                //mUsbEndpointIn = ep;
+                                mUsbEndpointOut = ep;
+                            } else {
+                                //mUsbEndpointOut = ep;
+                                mUsbEndpointIn = ep;
+                            }
+                        }
 
+                        if ((null == mUsbEndpointIn) || (null == mUsbEndpointOut)) {
+                            mUsbDeviceConnection = mUsbManager.openDevice(usbDevice);
+                            if (mUsbDeviceConnection!=null) {
+                                int i = mUsbDeviceConnection.controlTransfer(0x00, 0x09,
+                                        0x002, 0, null, 0, 100);
+                                SystemClock.sleep(1000);
+                                if (i >= 0) {
+                                    //mHandler.sendEmptyMessage(DEBUG_MESSAGE_SUCCESS);
                                 } else {
-
-                                    isNeedFindDevice = false;
-
-                                    mUsbInterface = usbInterface;
-                                    mUsbDeviceConnection = mUsbManager.openDevice(usbDevice);
-                                    if(null != mUsbEndpointIn){
-                                        mHandler.sendEmptyMessage(CONNECTED_SUCCESS);
-                                    }
+                                    //mHandler.sendEmptyMessage(DEBUG_MESSAGE_ERROR);
                                 }
                             }
+                        } else {
+                            isNeedFindDevice = false;
+                            mUsbInterface = usbInterface;
+                            mUsbDeviceConnection = mUsbManager.openDevice(usbDevice);
+                            mUsbDeviceConnection.claimInterface(mUsbInterface, true);
+                            if(null != mUsbEndpointIn){
+                                mHandler.sendEmptyMessage(CONNECTED_SUCCESS);
+                            }
                         }
-
                     } else {
                         mUsbManager.requestPermission(usbDevice, PendingIntent.getBroadcast(mContext, 0, new Intent(""), 0));
                     }

+ 30 - 60
app/src/main/java/com/example/administrator/wingcool_gt9_apk/NoiseAnalysis.java

@@ -475,73 +475,43 @@ public class NoiseAnalysis extends AppCompatActivity implements OpenDevicesRecei
                 {
                     if (mUsbManager.hasPermission(usbDevice)) {
 
-                        mUsbDeviceConnection = mUsbManager.openDevice(usbDevice);
-                        if (mUsbDeviceConnection != null) {
+                        UsbInterface usbInterface = usbDevice.getInterface(1);
 
-                            int interfaceCount = usbDevice.getInterfaceCount();
-                            // for (int interfaceIndex = 0; interfaceIndex < interfaceCount; interfaceIndex++)
-                            {
-                                // UsbInterface usbInterface = usbDevice.getInterface(interfaceIndex);
-                                UsbInterface usbInterface = usbDevice.getInterface(1);
-
-                                if(UsbConstants.USB_CLASS_HID != usbInterface.getInterfaceClass())
-                                {
-                                    // continue;
-                                }
-
-                                for (int i = 0; i < usbInterface.getEndpointCount(); i++) {
-                                    UsbEndpoint ep = usbInterface.getEndpoint(i);
-                                    //if (ep.getType() == UsbConstants.USB_ENDPOINT_XFER_INT) {
-                                    // if (ep.getType() == UsbConstants.USB_ENDPOINT_XFER_CONTROL) {
-                                    // if (ep.getType() == UsbConstants.USB_ENDPOINT_XFER_ISOC) {
-                                    if (ep.getType() == UsbConstants.USB_ENDPOINT_XFER_BULK) {
-                                        if (ep.getDirection() == UsbConstants.USB_DIR_OUT) {
-                                            //mUsbEndpointIn = ep;
-                                            mUsbEndpointOut = ep;
-                                        } else {
-                                            //mUsbEndpointOut = ep;
-                                            mUsbEndpointIn = ep;
-                                        }
-                                    }
-                                    else{
-                                        // mHandler.sendEmptyMessage(CONNECTED_SUCCESS);
-                                    }
-                                }
-
-                                if ((null == mUsbEndpointIn) || (null == mUsbEndpointOut)) {
-                                    //if ((null == mUsbEndpointIn) && (null == mUsbEndpointOut)) {
-                                    // tvInfo.append("endpoint is null\n");
-                                    int i = mUsbDeviceConnection.controlTransfer(0x00, 0x09,
-                                            0x002, 0, null, 0, 100);
-                                    SystemClock.sleep(1000);
-                                    if(i>=0){
-                                        //mHandler.sendEmptyMessage(DEBUG_MESSAGE_SUCCESS);
-                                    }
-                                    else{
-                                        //mHandler.sendEmptyMessage(DEBUG_MESSAGE_ERROR);
-                                    }
+                        for (int i = 0; i < usbInterface.getEndpointCount(); i++) {
+                            UsbEndpoint ep = usbInterface.getEndpoint(i);
 
+                            if (ep.getDirection() == UsbConstants.USB_DIR_OUT) {
+                                //mUsbEndpointIn = ep;
+                                mUsbEndpointOut = ep;
+                            } else {
+                                //mUsbEndpointOut = ep;
+                                mUsbEndpointIn = ep;
+                            }
+                        }
 
+                        if ((null == mUsbEndpointIn) || (null == mUsbEndpointOut)) {
+                            mUsbDeviceConnection = mUsbManager.openDevice(usbDevice);
+                            if (mUsbDeviceConnection!=null) {
+                                int i = mUsbDeviceConnection.controlTransfer(0x00, 0x09,
+                                        0x002, 0, null, 0, 100);
+                                SystemClock.sleep(1000);
+                                if (i >= 0) {
+                                    //mHandler.sendEmptyMessage(DEBUG_MESSAGE_SUCCESS);
                                 } else {
-
-
-                                    //if(0x80 == mUsbEndpointIn)
-                                    bIsconnected = false;
-                                    //isDetached = true;
-                                    isNeedFindDevice = false;
-
-                                    mUsbInterface = usbInterface;
-                                    mUsbDeviceConnection = mUsbManager.openDevice(usbDevice);
-                                    if(null != mUsbEndpointIn){
-                                        iProductId = usbDevice.getProductId();
-                                        bIsconnected = true;
-                                    }
+                                    //mHandler.sendEmptyMessage(DEBUG_MESSAGE_ERROR);
                                 }
                             }
-
+                        } else {
+                            bIsconnected = false;
+                            isNeedFindDevice = false;
+                            mUsbInterface = usbInterface;
+                            mUsbDeviceConnection = mUsbManager.openDevice(usbDevice);
+                            mUsbDeviceConnection.claimInterface(mUsbInterface, true);
+                            if(null != mUsbEndpointIn){
+                                iProductId = usbDevice.getProductId();
+                                bIsconnected = true;
+                            }
                         }
-
-
                     } else {
                         mUsbManager.requestPermission(usbDevice, PendingIntent.getBroadcast(mDataContext, 0, new Intent(""), 0));
                     }

+ 1 - 1
app/src/main/res/values-en/strings.xml

@@ -103,7 +103,7 @@
     <string name="companyaddr">Address:Room 2008, Chuangxingda Business Building, No.36 Liuxian 3rd Road, Baoan District, Shenzhen</string>
     <string name="telephonenum">Telephone:186 8896 1937</string>
     <string name="emailaddr">Email:max@wingcool.cn</string>
-    <string name="version">APK Version:v2.0.1_20211029-Debug Version</string>
+    <string name="version">APK Version:v2.0.1_20211102-Debug Version</string>
 
     <!-- other -->
     <string name="app_name">WingCoolAPK</string>

+ 1 - 1
app/src/main/res/values/strings.xml

@@ -103,7 +103,7 @@
     <string name="companyaddr">地址:深圳市宝安区留仙三路 36 号创兴达商务大厦 2008 室</string>
     <string name="telephonenum">电话:186 8896 1937</string>
     <string name="emailaddr">邮箱:max@wingcool.cn</string>
-    <string name="version">APK版本:v2.0.1_20211029-内部版本</string>
+    <string name="version">APK版本:v2.0.1_20211102-内部版本</string>
 
     <!-- other -->
     <string name="app_name">WingCoolAPK</string>