Erreur lors du lancement de l'application

Fermé
roroo07 Messages postés 504 Date d'inscription mercredi 30 juin 2010 Statut Membre Dernière intervention 14 avril 2014 - 14 avril 2014 à 16:11
roroo07 Messages postés 504 Date d'inscription mercredi 30 juin 2010 Statut Membre Dernière intervention 14 avril 2014 - 14 avril 2014 à 21:17
Bonjour a vous,

Je suis actuellement en STI2D option Système informatique et numérique, on travail sur un projet de LED DMX et je dois me charger de faire la partie android. Donc tout ce qui est IHM et bluetooth.

Voici mon MainActivity.java

package com.example.projet.dmx;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.SeekBar;
import android.widget.TextView;
import android.widget.ProgressBar;
import android.widget.SeekBar.OnSeekBarChangeListener;
import com.example.projet.dmx.BtInterface;



public class MainActivity extends Activity implements OnClickListener, OnSeekBarChangeListener
{ private TextView Texte_Recu;
private EditText Texte_A_Envoyer;
private Button Connecter_BT, Envoi;
private SeekBar seekBar1, seekBar2, seekBar3, seekBar4, seekBar5;

private BtInterface bt = null;

final Handler handler = new Handler()
{ public void handleMessage(Message msg)
{String data = msg.getData().getString("receivedData");
Texte_Recu.append(data);
}
};
final Handler handlerStatus = new Handler()
{ public void handleMessage(Message msg)
{ int co = msg.arg1;
if(co == 1)
{ Texte_Recu.setText("Connected");
}
else
if(co == 2)
{ Texte_Recu.setText("Disconnected");
}
}
};

@Override
public void onCreate(Bundle savedInstanceState)
{ super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

bt = new BtInterface(handlerStatus, handler);

Texte_Recu = (TextView)findViewById(R.id.textView);
Texte_A_Envoyer = (EditText)findViewById(R.id.button2);

Connecter_BT = (Button) findViewById(R.id.button1);
Connecter_BT.setOnClickListener(this);

Envoi = (Button) findViewById(R.id.editText1);
Envoi.setOnClickListener(this);

seekBar1 = (SeekBar) findViewById(R.id.seekBar1);
seekBar1.setOnSeekBarChangeListener(this);

seekBar2 = (SeekBar) findViewById(R.id.seekBar2);
seekBar2.setOnSeekBarChangeListener(this);

seekBar3 = (SeekBar) findViewById(R.id.seekBar3);
seekBar3.setOnSeekBarChangeListener(this);

seekBar4 = (SeekBar) findViewById(R.id.seekBar4);
seekBar4.setOnSeekBarChangeListener(this);

seekBar5 = (SeekBar) findViewById(R.id.seekBar5);
seekBar5.setOnSeekBarChangeListener(this);

}
@Override
public void onClick(View v)
{ if(v == Connecter_BT)
{//bt.connect();
Texte_Recu.setText("bouton connect appuyé");
}
else
if(v == Envoi)
{ bt.sendData(Texte_A_Envoyer.getText().toString());
Texte_Recu.setText("text envoyé");
}
}
@Override
public void onProgressChanged(SeekBar SeekBar, int progress, boolean fromUser)
{ if(SeekBar == seekBar1)
{ bt.sendData("@"+" 1 " +progress+ ".");
Texte_Recu.setText("Valeur = " +progress+ ". ");
}
if(SeekBar == seekBar2)
{ bt.sendData("@"+" 2 " +progress+ ".");
Texte_Recu.setText("Valeur = " +progress+ ". ");
}
if(SeekBar == seekBar3)
{bt.sendData("@"+" 3 " +progress+ ".");
Texte_Recu.setText("Valeur = " +progress+ ". ");
}
if(SeekBar == seekBar4)
{ bt.sendData("@"+" 4 " +progress+ ".");
Texte_Recu.setText("Valeur = " +progress+ ". ");
}
if(SeekBar == seekBar5)
{bt.sendData("@"+" 5 " +progress+ ".");
Texte_Recu.setText("Valeur = " +progress+ ". ");
}
}

@Override public void onStartTrackingTouch(SeekBar seekBar) { }
@Override public void onStopTrackingTouch(SeekBar seekBar) { }
}

Et mon BtIntervace.java

/** Du coup pour l'utiliser, il suffit juste de déclarer un objet BtInterface,
// & bt.connect(); pour se connecter, & bt.sendData("texte.."); pour envoyer */

package com.example.projet.dmx;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Set;
import java.util.UUID;

import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothSocket;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;


public class BtInterface
{
private BluetoothDevice device = null;
private BluetoothSocket socket = null;
private InputStream receiveStream = null;
private OutputStream sendStream = null;
private ReceiverThread processusReception;
Handler statutConnexion;

public BtInterface(Handler connexion, Handler manageData)
{
// On récupère la liste des péripheriques associés à notre appareil Android
Set<BluetoothDevice> setpairedDevices = BluetoothAdapter
.getDefaultAdapter().getBondedDevices();
BluetoothDevice[] pairedDevices = (BluetoothDevice[]) setpairedDevices
.toArray(new BluetoothDevice[setpairedDevices.size()]);

for (int i = 0; i < pairedDevices.length; i++)
{ // Notre module bluetooth doit contenir son nom : ici 'FB155v2.2.1'
if (pairedDevices[i].getName().contains("FB155v2.2.1"))
{ device = pairedDevices[i];
try
{ // On utilise cet UUID pour dialoguer en connexion série
// On crée un socket bluetooth pour notre périphérique
socket = device.createRfcommSocketToServiceRecord(UUID
.fromString("00001101-0000-1000-8000-00805F9B34FB"));
// flux de réception (fonctionnera dès que la connexion sera établie)
receiveStream = socket.getInputStream();
// flux d'emission (fonctionnera dès que la connexion sera établie)
sendStream = socket.getOutputStream();
}
catch (IOException e)
{ e.printStackTrace();
}
break;
}
}
statutConnexion = connexion;
// on prépare le thread de réception des données
processusReception = new ReceiverThread(manageData);
}

/** Methode pour envoyer des données de la tablette vers un BT externe ------------------------------*/
public void sendData(String data)
{
{ sendData(data, false);
}
}

public void sendData(String data, boolean deleteScheduledData)
{
try
{ // On écrit les données dans le buffer d'envoi de la tablette
sendStream.write(data.getBytes());
// On s'assure qu'elles soient bien envoyées
sendStream.flush();
}
catch (IOException e)
{ e.printStackTrace();
}
}
/** Fin de la Methode pour envoyer des données de la tablette vers un BT externe --------------------*/

/** Methode pour connecter la tablette avec un BT externe -------------------------------------------*/
public void connect()
{ new Thread()
{ @Override
public void run()
{ try
{ // tentative de connexion externe
socket.connect();
Message msg = statutConnexion.obtainMessage();
msg.arg1 = 1;
// réussite de connexion: envoie un msg pour afficher "Connected"
statutConnexion.sendMessage(msg);
// on démarre le thread de réception des données
processusReception.start();
}
catch (IOException e)
{ // si échec de la connexion
Log.v("N", "Connection Failed : " + e.getMessage());
e.printStackTrace();
}
}
}.start();
}
/** Fin de la Methode pour connecter la tablette avec un BT externe ---------------------------------*/

/** Methode pour la fermeture de l'appli ------------------------------------------------------------*/
public void close()
{ new Thread()
{ @Override
public void run()
{ try
{ // tentative de connexion
socket.close();
Message msg = statutConnexion.obtainMessage();
msg.arg1 = 2;
// réussite de la déconnexion: envoie un msg pour afficher "DisConnected"
statutConnexion.sendMessage(msg);
}
catch (IOException e)
{ // si echec de la déconnexion
Log.v("N", "Connection Failed : " + e.getMessage());
e.printStackTrace();
}
}
}.start();
}
/** Fin de la Methode pour la fermeture de l'appli ------------------------------------------------*/

public BluetoothDevice getDevice()
{ return device;
}

/** Réception data arrivant sur BT tablette pour affichage futur sur tablette ---------------------*/
private class ReceiverThread extends Thread
{ // Thread qui reçoit les données arrivant du module BT
Handler handler;

ReceiverThread(Handler h)
{ handler = h;
}

@Override
public void run()
{ while (true)
{ try
{ // si il y a des données sur le canal de réception
if (receiveStream.available() > 0)
{ // tableau d'octets de 100 cases
byte buffer[] = new byte[100];
// on stocke les données dans le tableau, k prend la valeur du nb de cases remplies
int k = receiveStream.read(buffer, 0, 100);
// s'il y a des données
if (k > 0)
{ // tableau d'octets qui a pour longueur le nombre de case de "buffer"
byte rawdata[] = new byte[k];
// chaque donnée de "buffer" est stockée dans "rawdata"
for (int i = 0; i < k; i++)
rawdata[i] = buffer[i];
// on convertit "rawdata" en chaine de caractères
String data = new String(rawdata);
// on récupère le "Message" du handler
Message msg = handler.obtainMessage();
// création d'une variable transmissible dans le "Message"
Bundle b = new Bundle();
// on stocke les données que l'on appelle "receivedData" qui remplace les anciennes
b.putString("receivedData", data);
// on edite le "Message" avec le bundle créé et complète
msg.setData(b);
// envoie du message au SerieBTActivity pour qu'il affiche les
// données de réception à l'écran ( gestionDonnées )
handler.sendMessage(msg);
}
}
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
}
/** Fin de réception du BT tablette --------------------------------------------------------------*/
}

Mon problème est au niveau du ProgressBar et que lors du lancement de l'application, elle crash et on arrive pas a trouver pourquoi ..






1 réponse

roroo07 Messages postés 504 Date d'inscription mercredi 30 juin 2010 Statut Membre Dernière intervention 14 avril 2014 15
14 avril 2014 à 21:17
up
0