Bluetooth transfert de données entre deux appareils Android
J'ai suivi ce guide Android pour la communication Bluetooth
Pour expliquer exactement ce que je veux faire, quand les deux appareils sont connectés, deux activités différentes sur chaque appareil (serveur et client), où sur l'activité du serveur, j'ai des boutons différents, et sur l'activité de client il y a juste un textview.
Je veux être en mesure d'appuyer sur un bouton sur le serveur de périphérique et de l'afficher sur le client.
J'ai réussi à établir une connexion entre les deux appareils, mais maintenant je veux envoyer les données que je n'ai pas été capable de le faire.
Ils donnent ce code pour le transfert de données:
private class ConnectedThread extends Thread {
private final BluetoothSocket mmSocket;
private final InputStream mmInStream;
private final OutputStream mmOutStream;
public ConnectedThread(BluetoothSocket socket) {
mmSocket = socket;
InputStream tmpIn = null;
OutputStream tmpOut = null;
//Get the input and output streams, using temp objects because
//member streams are final
try {
tmpIn = socket.getInputStream();
tmpOut = socket.getOutputStream();
} catch (IOException e) { }
mmInStream = tmpIn;
mmOutStream = tmpOut;
}
public void run() {
byte[] buffer = new byte[1024]; //buffer store for the stream
int bytes; //bytes returned from read()
//Keep listening to the InputStream until an exception occurs
while (true) {
try {
//Read from the InputStream
bytes = mmInStream.read(buffer);
//Send the obtained bytes to the UI activity
mHandler.obtainMessage(MESSAGE_READ, bytes, -1, buffer)
.sendToTarget();
} catch (IOException e) {
break;
}
}
}
/* Call this from the main activity to send data to the remote device */
public void write(byte[] bytes) {
try {
mmOutStream.write(bytes);
} catch (IOException e) { }
}
/* Call this from the main activity to shutdown the connection */
public void cancel() {
try {
mmSocket.close();
} catch (IOException e) { }
}
}
Mais cette ligne génère une erreur
//Send the obtained bytes to the UI activity
mHandler.obtainMessage(MESSAGE_READ, bytes, -1, buffer).sendToTarget();
Et n'est pas expliqué dans le guide. Je ne sais pas ce que le mHandler est ou fait.
En dehors de l'erreur, je n'ai même pas vraiment où mettre ce code. Devrait-il être dans le second activités (serveur et client) que je l'ouvre ou dans la main? Si dans le Serveur de l'activité, devrait-il être dans le onClick méthode pour tous les boutons avec un autre code octet à envoyer pour chaque bouton? Et dans ce code, comment faire la distinction qui est l'expéditeur et le destinataire?
<uses-permission android:name="android.permission.BLUETOOTH" /> <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
Et
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
ou <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
.
OriginalL'auteur Simpsons | 2014-01-19
Vous devez vous connecter pour publier un commentaire.
Découvrez la BluetoothChat exemple que Google fournit dans le kit de développement. Il va vous montrer comment mettre en œuvre de base de l'envoi du texte au fil bluetooth.
Le lien dans cette réponse, c'est très vieux. Il y a une mise à jour officiel de l'exemple de la BluetoothChat application ici: github.com/googlesamples/android-BluetoothChat
OriginalL'auteur Joreyaesh
Vous pouvez également essayer le tutoriel exemple ici
OriginalL'auteur addy123
Pouvez-vous nous décrire l'erreur comme on le voit par vous?
Comme informé par Ankit et Addy, BlueToothChat est le meilleur code pour que vous consultez. La conduite d'une expérience en la chargeant sur 2 appareils android - utilisation en tant que serveur autre en tant que client d'échanger des messages entre eux. Une telle expérience vous aidera à comprendre le code et décider de votre logique de codage.
OriginalL'auteur SunGa
mHandler est utilisé pour la transmission de messages à partir de votre BluetoothHandle.java pour votre Activité. Cela vous aidera à mettre à jour les messages sur votre écran qui sont retournés par BluetoothHandler.
vous devez créer mHandler de votre activité et appelez votre gestionnaire, ce
mBluetoothHandler = new BluetoothHandler(this, mHandler);
et votre BluetoothHandler.java a constructeur, ce
Pour plus de détails, veuillez vous reporter Android exemple de projet de Bluetooth Chat .
Vous pouvez également utiliser ce lien :
http://myandroidappdevelop.blogspot.in/2013/05/bluetooth-chat-example.html
OriginalL'auteur Ankit
OriginalL'auteur user3420105