我正在尝试弄清楚应用程序如何从蓝牙设备下载文件,我想知道如何从该设备将文件下载到手机存储中,它是用来读取应用程序内部文件的方法,它是从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, SendBuffer);
if (User_ReceiveData(ReceivedBuffer, 6000) == 0) {
return 65;
}
if (ReceivedBuffer[2] != 121) {
return 66;
}
return 0;
}
}
}
感谢您的时间