获取缓冲区java的一半值
我想从缓冲区中获取值,直到值减半:获取缓冲区java的一半值,java,android,bluetooth,Java,Android,Bluetooth,我想从缓冲区中获取值,直到值减半: public void run() { byte[] buffer = new byte[1048576]; // 20 bits int bytes; String strRx = ""; while (running) { try { byt
public void run() {
byte[] buffer = new byte[1048576]; // 20 bits
int bytes;
String strRx = "";
while (running) {
try {
bytes = connectedInputStream.read(buffer);
final String strReceived_freq = new String(buffer,0, buffer/2); // buffer/2 not working
final String strReceived_pxx = new String(buffer,buffer/2, bytes); // buffer/2 not working
//final int samples_sdr=new Integer(buffer,0,bytes);
final String strByteCnt = String.valueOf(bytes) + " bytes received.\n";
问题是,buffer/2不起作用,如何从我的缓冲区中获取一半的值
谢谢你的帮助 public void run(){
public void run() {
byte[] buffer = new byte[1048576]; // 20 bits
int bytes = 0;
String strRx = "";
while (running) {
try {
bytes = connectedInputStream.read(buffer);
if(bytes == 0) {
Log.d("DEBUG","connectedInputStream returned 0 bytes");
}
byte[] strReceived_freq_byte = new byte[(buffer.length)/2];
for(int i = 0; i < (buffer.length)/2; i++) {
strReceived_freq_byte[i] = buffer[i];
}
byte[] strReceived_pxx_byte = new byte[(buffer.length)/2];
for(int i =0 ; i < (buffer.length)/2; i++) {
strReceived_freq_byte[i] = buffer[i+((buffer.length)/2)];
}
String strReceived_freq = new String(strReceived_freq_byte);
String strReceived_pxx = new String(strReceived_pxx_byte);
final String strByteCnt = String.valueOf(bytes) + " bytes received.\n";
}
}
}
字节[]缓冲区=新字节[1048576];//20位
int字节=0;
字符串strRx=“”;
(跑步时){
试一试{
字节=connectedInputStream.read(缓冲区);
如果(字节==0){
Log.d(“调试”,“connectedInputStream返回0字节”);
}
字节[]strReceived_freq_byte=新字节[(buffer.length)/2];
对于(int i=0;i<(buffer.length)/2;i++){
strReceived_freq_byte[i]=缓冲区[i];
}
字节[]strReceived_pxx_byte=新字节[(buffer.length)/2];
对于(int i=0;i<(buffer.length)/2;i++){
strReceived_freq_byte[i]=缓冲区[i+((buffer.length)/2];
}
String strReceived_freq=新字符串(strReceived_freq_字节);
String strReceived_pxx=新字符串(strReceived_pxx_字节);
最终字符串strByteCnt=String.valueOf(bytes)+“已接收字节”。\n”;
}
}
}
我的应用程序中可能存在此命令的副本。我不明白为什么你说的是bytes/2
而不是buffer/2
。是的,对不起,我的意思是字节/2而不是缓冲区/2,但我有一些问题,我不知道这是否与我的缓冲区有关,但对于我的选项卡的每种情况,我都会在相同的时间内得到2个值(我的频率和我的pxx值),因为选项卡正在重新写入,直到33为止,在我不知道这是否与我的缓冲区有关之后,我将其转换为字符串:final string strReceived_freq2=new string(strReceived_freq)?因为当我这样做的时候,我没有收到任何东西可以连接到putstream.read(缓冲区);没有返回任何字节。要检查日志,请输入int bytes变量的值。如果它是零,那么实际上它不会返回任何字节。