Android编码-将文件从应用程序内存传输到设备存储

问题描述

我正在尝试弄清楚应用程序如何从蓝牙设备下载文件,我想知道如何从该设备将文件下载到手机存储中,它是用来读取应用程序内部文件的方法,它是从APK中提取的,但是我不确定该如何处理,因为我不知道它的作用。

public int DownloadSDfile(char[] inpath,byte[] indata,int len) {
    char[] cArr = inpath;
    byte[] bArr = indata;
    int i = len;
    byte[] SendBuffer = new byte[2080];
    byte[] ReceivedBuffer = new byte[2080];
    int start_addr = 0;
    int crcbuf = getBufCRC(bArr,i,0);
    int sendlen = 0 + 1;
    byte b = 72;
    SendBuffer[0] = 72;
    int sendlen2 = sendlen + 1;
    SendBuffer[sendlen] = 1;
    int sendlen3 = sendlen2 + 1;
    SendBuffer[sendlen2] = (byte) (i >> 24);
    int sendlen4 = sendlen3 + 1;
    SendBuffer[sendlen3] = (byte) (i >> 16);
    int sendlen5 = sendlen4 + 1;
    SendBuffer[sendlen4] = (byte) (i >> 8);
    int sendlen6 = sendlen5 + 1;
    SendBuffer[sendlen5] = (byte) (i >> 0);
    int filelen = cArr.length;
    int j = 0;
    while (j < filelen) {
        SendBuffer[sendlen6] = (byte) cArr[j];
        j++;
        sendlen6++;
    }
    int sendlen7 = sendlen6 + 1;
    SendBuffer[sendlen6] = 0;
    User_SendData(128,SendBuffer);
    int i2 = filelen;
    if (User_ReceiveData(ReceivedBuffer,4000) == 0) {
        return 33;
    }
    if (ReceivedBuffer[0] != 72) {
        return 34;
    }
    if (ReceivedBuffer[1] != 1) {
        return 35;
    }
    byte b2 = 2;
    if (ReceivedBuffer[2] != 121) {
        return 36;
    }
    int k = 0;
    while (true) {
        int sendlen8 = sendlen7;
        if (k < i / 2048) {
            int sendlen9 = 0 + 1;
            SendBuffer[0] = b;
            int sendlen10 = sendlen9 + 1;
            SendBuffer[sendlen9] = b2;
            int sendlen11 = sendlen10 + 1;
            SendBuffer[sendlen10] = 8;
            int sendlen12 = sendlen11 + 1;
            SendBuffer[sendlen11] = 0;
            int sendlen13 = sendlen12 + 1;
            SendBuffer[sendlen12] = (byte) (start_addr >> 24);
            int sendlen14 = sendlen13 + 1;
            SendBuffer[sendlen13] = (byte) (start_addr >> 16);
            int sendlen15 = sendlen14 + 1;
            SendBuffer[sendlen14] = (byte) (start_addr >> 8);
            int sendlen16 = sendlen15 + 1;
            SendBuffer[sendlen15] = (byte) (start_addr >> 0);
            int j2 = 0;
            while (j2 < 2048) {
                SendBuffer[sendlen16] = bArr[start_addr];
                j2++;
                sendlen16++;
                start_addr++;
            }
            User_SendData(sendlen16,SendBuffer);
            if (User_ReceiveData(ReceivedBuffer,15000) == 0) {
                return 49;
            }
            if (ReceivedBuffer[2] != 121) {
                return 50;
            }
            k++;
            sendlen7 = sendlen16;
            b2 = 2;
            b = 72;
        } else {
            if (i % 2048 != 0) {
                int sendlen17 = 0 + 1;
                SendBuffer[0] = 72;
                int sendlen18 = sendlen17 + 1;
                SendBuffer[sendlen17] = 2;
                int sendlen19 = sendlen18 + 1;
                SendBuffer[sendlen18] = (byte) ((i % 2048) / 256);
                int sendlen20 = sendlen19 + 1;
                SendBuffer[sendlen19] = (byte) ((i % 2048) % 256);
                int sendlen21 = sendlen20 + 1;
                SendBuffer[sendlen20] = (byte) (start_addr >> 24);
                int sendlen22 = sendlen21 + 1;
                SendBuffer[sendlen21] = (byte) (start_addr >> 16);
                int sendlen23 = sendlen22 + 1;
                SendBuffer[sendlen22] = (byte) (start_addr >> 8);
                int sendlen24 = sendlen23 + 1;
                SendBuffer[sendlen23] = (byte) (start_addr >> 0);
                int j3 = 0;
                while (j3 < i % 2048) {
                    SendBuffer[sendlen24] = bArr[start_addr];
                    j3++;
                    sendlen24++;
                    start_addr++;
                }
                User_SendData(2056,SendBuffer);
                if (User_ReceiveData(ReceivedBuffer,15000) == 0) {
                    return 51;
                }
                if (ReceivedBuffer[2] != 121) {
                    return 52;
                }
                int i3 = sendlen24;
            } else {
                int i4 = sendlen8;
            }
            int sendlen25 = 0 + 1;
            SendBuffer[0] = 72;
            int sendlen26 = sendlen25 + 1;
            SendBuffer[sendlen25] = 3;
            int sendlen27 = sendlen26 + 1;
            SendBuffer[sendlen26] = (byte) (crcbuf / 256);
            int i5 = sendlen27 + 1;
            SendBuffer[sendlen27] = (byte) (crcbuf % 256);
            User_SendData(128,6000) == 0) {
                return 65;
            }
            if (ReceivedBuffer[2] != 121) {
                return 66;
            }
            return 0;
        }
    }
}

感谢您的时间

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...