Partage
  • Partager sur Facebook
  • Partager sur Twitter

AS : Bluetooth ne détecte pas les autres appareils

    20 octobre 2020 à 9:03:42

    Bonjour à tous,

    Je vous écris car j'ai écris un code me permettant d'activer le bluetooth et de detecter les autres appareils.

    Actuellement mon code ne présente aucune erreurs, l'application se lance correctement mais lorsque je cherche à détecter rien ne s'effectue.

    Il semble ne pas vouloir scanner les appareils au alentour. 

    Je me suis essentiellememnt basé sur le manuel :

    https://developer.android.com/guide/topics/connectivity/bluetooth

    Sauriez-vous m'éclairer ?

    Voici le manifeste concernant les permissions.  

        <uses-permission android:name="android.permission.BLUETOOTH" />
        <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
        <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
        <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

    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.. 


    • Partager sur Facebook
    • Partager sur Twitter

    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.
    • Editeur
    • Markdown