j'ai arduino QU'envoyiez 2 int et l'int était séparée par « : » par exemple mon arduino envoyer des données = 12315: 15123ne peut pas convertir la chaîne en int après la réception de données en java
après que j'envoie ces données à l'aide bluetooth, je reçois les données smartphone et j'ai besoin que 2 valeur que je reçois devenir int nouveau c'est était mon code partie sur mon Android
void beginListenForData()
{
final Handler handler = new Handler();
final byte delimiter = 10; //This is the ASCII code for a newline character
stopWorker = false;
readBufferPosition = 0;
readBuffer = new byte[1024];
workerThread = new Thread(new Runnable()
{
public void run()
{
while(!Thread.currentThread().isInterrupted() && !stopWorker)
{
try
{
int bytesAvailable = mmInputStream.available();
if(bytesAvailable > 0)
{
byte[] packetBytes = new byte[bytesAvailable];
mmInputStream.read(packetBytes);
for(int i=0;i<bytesAvailable;i++)
{
byte b = packetBytes[i];
if(b == delimiter)
{
byte[] encodedBytes = new byte[readBufferPosition];
System.arraycopy(readBuffer, 0, encodedBytes, 0, encodedBytes.length);
final String data = new String(encodedBytes, "US-ASCII");
readBufferPosition = 0;
handler.post(new Runnable()
{
public void run()
{
String[] tmp;
String lol,dam;
tmp = data.split(":");
try
{
lol = String.valueOf(crypt[0])+":"+String.valueOf(crypt[1]);
derajat.setText(lol);
}
catch (NumberFormatException nfe)
{
// bad data - set to sentinel
crypt[0] = Integer.MIN_VALUE;
crypt[1] = Integer.MIN_VALUE;
derajat.setText("none");
}
dam = tmp[0]+":"+tmp[1];
myLabel.setText(dam);
//derajat.setText(data);
}
});
}
else
{
readBuffer[readBufferPosition++] = b;
}
}
}
}
catch (IOException ex)
{
stopWorker = true;
}
}
}
});
workerThread.start();
}
que vous pouvez voir que, après des données « \ n » seront processus d'abord je diviser en utilisant data.split() et j'obtiens 2 valeur qui stockée dans tmp après que je parse cette valeur à la crypte [0] et crypte [1] i de texte à derajat pour voir ma valeur
et je mets le texte le résultat dans MyLabel trop je peux voir ma valeur en MyLabel mais je ne peux pas le convertir en int parce que je ne vois rien dans l'étiquette derajat quelqu'un peut-il m'aider pourquoi je ne peux pas convertir int après avoir reçu ces données ??
Où est défini 'crypt'? Ne devriez-vous pas utiliser 'temp' aussi? –
J'utilise int [] crypt = new int [10], je l'utilise dans le monde entier parce que j'ai besoin d'utiliser cette valeur dans une autre classe –