Je suis encore débutant et j'ai besoin d'aide pour coder mon Android Studio> 0 < Je ne peux pas envoyer de données longues, bien que je change la taille de "tampon". Que devrais-je faire ?Pourquoi je ne peux pas envoyer une grande quantité de données via Bluetooth Android?
C'est le programme récepteur:
public void run() {
InputStream inputStream;
try {
inputStream = mBTSocket.getInputStream();
while (!bStop) {
byte[] buffer = new byte[1024];
if (inputStream.available() > 0)
{
inputStream.read(buffer);
int i = 0;
/*
* This is needed because new String(buffer) is taking the entire buffer i.e. 256 chars on Android 2.3.4 http://stackoverflow.com/a/8843462/1287554
*/
for (i = 0; i < buffer.length && buffer[i] != 0; i++) {}
final String strInput = new String(buffer, 0, i);
/*
* If checked then receive text, better design would probably be to stop thread if unchecked and free resources, but this is a quick fix
*/
}
Thread.sleep(500);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
Ce sont le programme de l'expéditeur:
public void sendStringBT(String s)
{
try {
mBTSocket.getOutputStream().write(s.getBytes());
sleep();
Toast.makeText(getApplicationContext(), "Sent...", Toast.LENGTH_SHORT).show();
mBTSocket.getOutputStream().flush();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
Voici comment nous appelons à envoyer des données:
sendStringBT(dataPage6); //send data via Bluetooth
Avez-vous trouvé une solution? – Majkl
Cher @Majkl, désolé pour ma réponse tardive> 0 <. Ya, tu as raison! Après avoir supprimé "sleep()" dans le programme de l'expéditeur, je peux envoyer beaucoup de données. Merci beaucoup !^- ^. Mais, j'ai un autre problème> 0 <. Après avoir envoyé des données d'Android via Bluetooth à Arduino (par HC-05). Il y a toujours des données manquantes, bien que je diminue la vitesse de transmission. Avoir une autre idée? Merci^-^ – Dian
Je n'utilise pas Arduino. Je suppose que c'est le problème dans les paramètres de communication des deux appareils, qui doivent être les mêmes (débit en bauds, bit de parité ...). Créer une nouvelle question, peut-être que quelqu'un saura. – Majkl