Ainsi que le code java de l'activité gérant le bluetooth.
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import java.util.ArrayList;
import java.util.List;
public class BluetoothActivity extends AppCompatActivity {
/** Declaration des variables privés
* - p_bluetoothAdapter : représente le bluetooth de l'appareil
* - p_acces_btn_bluetooth : représente le bouton logique d'activation et désactivation du bluetooth de l'appareil
* -
* -- */
private BluetoothAdapter p_bluetoothAdapter;
private Button p_access_btn_bluetooth;
private Button p_btn_discover_device;
private ListView p_list_device;
private static final int REQUEST_ENABLE_BT = 0;
private static final int REQUEST_DISCOVER_BT = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_bluetooth);
p_access_btn_bluetooth = (Button) findViewById(R.id.btn_access_bluetooth);
p_btn_discover_device = (Button) findViewById(R.id.btn_discover_device);
p_list_device = (ListView) findViewById(R.id.lv_list_devices);
// Register for broadcasts when a device is discovered.
IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_FOUND);
registerReceiver(receiver, filter);
/** ETAPE 1
* Implementation Bluetooth qui objective le bluetooth de l'appareil. -- */
p_bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
if (p_bluetoothAdapter == null)
{Toast.makeText(getApplicationContext(), "Bluetooth non disponible sur cette appareil",Toast.LENGTH_SHORT).show();}
/** Textualisation du bouton p_acces_btn_bluetooth*/
if(!p_bluetoothAdapter.isEnabled())
{p_access_btn_bluetooth.setText("ACTIVER BLUETOOTH");}
else
{p_access_btn_bluetooth.setText("DESACTIVER BLUETOOTH");}
/** ETAPE 2
* Vérification de l'etat d'activation de l'appareil,
* Si le bluetooth n'est pas activé alors nous l'activons (resp) et changeons le texte du bouton -- */
p_access_btn_bluetooth.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Button btn_logique_text = (Button) p_access_btn_bluetooth;
String buttonText = btn_logique_text.getText().toString();
if (!p_bluetoothAdapter.isEnabled())
{
Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);
p_access_btn_bluetooth.setText("DESACTIVER BLUETOOTH");
}
else
{
p_bluetoothAdapter.disable();
p_access_btn_bluetooth.setText("ACTIVER BLUETOOTH");
}
}
});
/**
* ETAPE 3
* Analyse des appareils à proximité. -- */
p_btn_discover_device.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(!p_bluetoothAdapter.isEnabled())
{Toast.makeText(getApplicationContext(), "Le bluetooth doit être activé pour effectuer l'analyse", Toast.LENGTH_SHORT).show();}
else
{
p_bluetoothAdapter.startDiscovery();
Toast.makeText(getApplicationContext(),"début d'analyse ...", Toast.LENGTH_SHORT).show();
}
}
});
}//OnCreate
// Create a BroadcastReceiver for ACTION_FOUND.
private final BroadcastReceiver receiver = new BroadcastReceiver() {
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
List<String> p_device_bluetooth = new ArrayList<String>();
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(BluetoothActivity.this,android.R.layout.simple_list_item_1,p_device_bluetooth );
p_list_device.setAdapter(arrayAdapter);
if (BluetoothDevice.ACTION_FOUND.equals(action))
{
BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
String deviceName = device.getName();
String deviceHardwareAddress = device.getAddress(); // MAC address
p_device_bluetooth.add(deviceName);
arrayAdapter.notifyDataSetChanged();
}
}
};// BroadcastReceiver
@Override
protected void onDestroy() {
super.onDestroy();
unregisterReceiver(receiver);
}//onDestroy
@Override
public void onBackPressed(){
startActivity(new Intent(getApplicationContext(), MainActivity.class));
finish();
}//OnBackPressed
}
Le code ne présente aucune erreurs, l'activation du bluetooth se passe bien. mais lorsque je lance le scan rien ne se passe..
AS : Bluetooth ne détecte pas les autres appareils
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.