如何解决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 举报,一经查实,本站将立刻删除。