Bonjour,
Je fais appelle a vous car j’ai un petit problème avec une de mes applications.
Mon application fait une connexion entre un microcontrôleur et mon téléphone via le Bluetooth.
J’ai trouvé sur le net un tuto m’expliquant comment faire, et en plus ca marche. Je reçois et j’envois.
Par contre, la personne qui a fait le tuto na pas mis comment enclencher le Bluetooth. Pour que son appli fonctionne il faut enclencher et faire la recherche des périphériques Bluetooth manuellement.
J’ai commencé à chercher sur le net comment faire, j’ai trouvé un site qui m’explique (je crois) comment faire. Mais mon souci est que comme je suis débutant en programmation JAVA (Android), je sais pas trop ou je dois rajouter le code.
Au début je le mettais dans onCreate, l’activation du bluetooth. Mais a chaque fois que j’essais mon application, l’icon du bluetooth apparaît, mais quant j’appuie sur le bouton connecte(bouton que j’ai créer pour créer une connexion avec le module bluetooth extérieur), mon application affiche un message disant « Votre application a été fermer » et elle ce ferme !!!!! et des que je re test une deuxième fois, ba ce marche.
Pour résumer, mon application fonctionne que quand j’active le bluetooth manuellement, je c pas comment programme cette étape dans mon application pour qu'elle ce face automatiquement.
private final static int REQUEST_CODE_ENABLE_BLUETOOTH = 0;//attention
Handler handler = new Handler()
{
@Override
public void handleMessage(Message msg)
{
String data = msg.getData().getString("receivedData");
if(data.startsWith("H")) // si la valeur ressu (string) commance par 'H'
{
TextViewHumidite.setText(data); // Remplacer le text par valeur ressu
}else if(data.startsWith("P")) // si la valeur ressu (string) commance par 'P'
{
TextViewPression.setText(data); // Remplacer le text par valeur ressu
}else if(data.startsWith("T")) // si la valeur ressu (string) commance par 'T'
{
TextViewTemperature.setText(data); // Remplacer le text par valeur ressu
}else // Sinon
{
long t = System.currentTimeMillis();
if(t-lastTime > 100)
{ // Pour éviter que les messages soit coupés
logview.append("\n");
lastTime = System.currentTimeMillis();
}
// Affichage de data
logview.append(data);
}
}
};
Handler handlerStatus = new Handler()
{
@Override
public void handleMessage(Message msg)
{
int co = msg.arg1;
if(co == 1)
{
// Regarde si il y a un Bluetooth sur le télépnone
BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
if (bluetoothAdapter == null)
Toast.makeText(MainActivityBluetooth.this, "Pas de Bluetooth",
Toast.LENGTH_SHORT).show();
else
Toast.makeText(MainActivityBluetooth.this, "Avec Bluetooth",
Toast.LENGTH_SHORT).show();
// Activer le Bluetooth
if (!bluetoothAdapter.isEnabled()) {
Intent enableBlueTooth = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(enableBlueTooth, REQUEST_CODE_ENABLE_BLUETOOTH);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode != REQUEST_CODE_ENABLE_BLUETOOTH)
return;
if (resultCode == RESULT_OK) {
// L'utilisation a activé le bluetooth
} else {
// L'utilisation n'a pas activé le bluetooth
}
}
}
Et ca c'est la clace que j'ai créer:
package com.bluetooth.cfpt;
import android.bluetooth.BluetoothAdapter; //Classe qui représente le module bluetooth de votre Android, elle permet de scanner les périphériques présents, d'activer / désactiver le bluetooth, ...
import android.bluetooth.BluetoothDevice; //Classe qui représente un périphérique bluetooth
import android.bluetooth.BluetoothSocket; //Classe qui permet d'obtenir les canaux d'écriture (émission) et de lecture (réception) du périphérique
private ReceiverThread receiverThread; // Thread de reception
Handler handler;
public Bluetooth(Handler hstatus, Handler h)
{
// On récupère la liste des périphériques Bluetooth associés au téléphonne
Set setpairedDevices = BluetoothAdapter.getDefaultAdapter().getBondedDevices();
BluetoothDevice[] pairedDevices = (BluetoothDevice[]) setpairedDevices.toArray(new BluetoothDevice[setpairedDevices.size()]);
// On parcours la liste pour trouver notre module bluetooth
for(int i=0;i 0)
{
byte buffer[] = new byte[100];
// On lit les données
int k = receiveStream.read(buffer, 0, 100); // k représente le nombre de bytes lu
if(k > 0)
{// On cree un tableau et on mais les valeurs dedant
byte rawdata[] = new byte[k];
for(int i=0;i
Ton code étant assez dense (possible que j'ai raté quelque chose), peux-tu nous dire quels morceaux de code as-tu ajoutés et à quels endroits dans ton code ? J'ai l'impression que tu exécutes du code qui aurait dû l'être à un stade précis du cycle de vie d'une activity. As-tu des exceptions affichées dans ton logCat ?
--
Pylouq Heureux sont ceux qui lisent le Réglement, ils ne finiront peut-être pas au bûcher.