public void sendData() { int sendUnit = 20; if (mSendedFileSize + 20 > mDataBuf.length) { sendUnit = mDataBuf.length - mSendedFileSize; } else { sendUnit = 20; } byte[] data = new byte[sendUnit]; System.arraycopy(mDataBuf, mSendedFileSize, data, 0, sendUnit); Log.d(TAG, "send:" + Arrays.toString(data)); mPeripheral.write(SERVICE_DFU, AN_DEVICE_DFU_DATA, data, false); // mSendedFileSize += sendUnit; if (mPeripheral.getState() != Peripheral.STATE_CONNECTED) { mTimer.cancel(); mOtaing = false; } }