Android - Bluetooth

Parmi de nombreuses façons, Bluetooth est un moyen d'envoyer ou de recevoir des données entre deux appareils différents. La plate-forme Android prend en charge la structure Bluetooth qui permet à un appareil d'échanger des données sans fil avec d'autres appareils Bluetooth.

Android fournit une API Bluetooth pour effectuer ces différentes opérations.

  • Rechercher d'autres appareils Bluetooth

  • Obtenez une liste des appareils associés

  • Connectez-vous à d'autres appareils via la découverte de services

Android fournit la classe BluetoothAdapter pour communiquer avec Bluetooth. Créez un objet de cet appel en appelant la méthode statique getDefaultAdapter (). Sa syntaxe est donnée ci-dessous.

private BluetoothAdapter BA;
BA = BluetoothAdapter.getDefaultAdapter();

Afin d'activer le Bluetooth de votre appareil, appelez l'intention avec la constante Bluetooth ACTION_REQUEST_ENABLE suivante. Sa syntaxe est.

Intent turnOn = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(turnOn, 0);

En dehors de cette constante, il existe d'autres constantes fournies par l'API, qui prend en charge différentes tâches. Ils sont listés ci-dessous.

Sr.Non Constante et description
1

ACTION_REQUEST_DISCOVERABLE

Cette constante est utilisée pour activer la découverte de bluetooth

2

ACTION_STATE_CHANGED

Cette constante notifiera que l'état Bluetooth a été modifié

3

ACTION_FOUND

Cette constante est utilisée pour recevoir des informations sur chaque appareil découvert

Une fois que vous avez activé le Bluetooth, vous pouvez obtenir une liste des appareils couplés en appelant la méthode getBondedDevices (). Il renvoie un ensemble d'appareils Bluetooth. Sa syntaxe est.

private Set<BluetoothDevice>pairedDevices;
pairedDevices = BA.getBondedDevices();

Outre les appareils parés, il existe d'autres méthodes dans l'API qui donnent plus de contrôle sur Blueetooth. Ils sont listés ci-dessous.

Sr.Non Méthode et description
1

enable()

Cette méthode active l'adaptateur s'il n'est pas activé

2

isEnabled()

Cette méthode renvoie true si l'adaptateur est activé

3

disable()

Cette méthode désactive l'adaptateur

4

getName()

Cette méthode renvoie le nom de l'adaptateur Bluetooth

5

setName(String name)

Cette méthode change le nom Bluetooth

6

getState()

Cette méthode renvoie l'état actuel de l'adaptateur Bluetooth.

sept

startDiscovery()

Cette méthode démarre le processus de découverte du Bluetooth pendant 120 secondes.

Exemple

Cet exemple fournit une démonstration de la classe BluetoothAdapter pour manipuler Bluetooth et afficher la liste des appareils couplés par Bluetooth.

Pour expérimenter cet exemple, vous devez l'exécuter sur un appareil réel.

Pas La description
1 Vous utiliserez Android Studio pour créer une application Android un package com.example.sairamkrishna.myapplication.
2 Modifiez le fichier src / MainActivity.java pour ajouter le code
3 Modifiez le fichier XML de mise en page res / layout / activity_main.xml, ajoutez un composant GUI si nécessaire.
4 Modifiez AndroidManifest.xml pour ajouter les autorisations nécessaires.
5 Exécutez l'application et choisissez un appareil Android en cours d'exécution, installez l'application dessus et vérifiez les résultats.

Voici le contenu de src/MainActivity.java

package com.example.sairamkrishna.myapplication;

import android.app.Activity;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;

import android.content.Intent;
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 java.util.ArrayList;
import java.util.Set;

public class MainActivity extends Activity  {
   Button b1,b2,b3,b4;
   private BluetoothAdapter BA;
   private Set<BluetoothDevice>pairedDevices;
   ListView lv;

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

      b1 = (Button) findViewById(R.id.button);
      b2=(Button)findViewById(R.id.button2);
      b3=(Button)findViewById(R.id.button3);
      b4=(Button)findViewById(R.id.button4);

      BA = BluetoothAdapter.getDefaultAdapter();
      lv = (ListView)findViewById(R.id.listView);
   }

   public void on(View v){
      if (!BA.isEnabled()) {
         Intent turnOn = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
         startActivityForResult(turnOn, 0);
         Toast.makeText(getApplicationContext(), "Turned on",Toast.LENGTH_LONG).show();
      } else {
         Toast.makeText(getApplicationContext(), "Already on", Toast.LENGTH_LONG).show();
      }
   }

   public void off(View v){
      BA.disable();
      Toast.makeText(getApplicationContext(), "Turned off" ,Toast.LENGTH_LONG).show();
   }

    
   public  void visible(View v){
      Intent getVisible = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);
      startActivityForResult(getVisible, 0);
   }

    
   public void list(View v){
      pairedDevices = BA.getBondedDevices();
        
      ArrayList list = new ArrayList();

      for(BluetoothDevice bt : pairedDevices) list.add(bt.getName());
      Toast.makeText(getApplicationContext(), "Showing Paired Devices",Toast.LENGTH_SHORT).show();

      final ArrayAdapter adapter = new  ArrayAdapter(this,android.R.layout.simple_list_item_1, list);
        
      lv.setAdapter(adapter);
   }
}

Voici le contenu de activity_main.xml

Ici abc indique le logo de tutorialspoint.
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools" 
   android:layout_width="match_parent"
   android:layout_height="match_parent" 
   android:paddingLeft="@dimen/activity_horizontal_margin"
   android:paddingRight="@dimen/activity_horizontal_margin"
   android:paddingTop="@dimen/activity_vertical_margin"
   android:paddingBottom="@dimen/activity_vertical_margin"
   tools:context=".MainActivity"
   android:transitionGroup="true">
   
   <TextView android:text="Bluetooth Example" 
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:id="@+id/textview"
      android:textSize="35dp"
      android:layout_alignParentTop="true"
      android:layout_centerHorizontal="true" />
      
   <TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Tutorials point"
      android:id="@+id/textView"
      android:layout_below="@+id/textview"
      android:layout_centerHorizontal="true"
      android:textColor="#ff7aff24"
      android:textSize="35dp" />
      
   <ImageView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:id="@+id/imageView"
      android:src="@drawable/abc"
      android:layout_below="@+id/textView"
      android:layout_centerHorizontal="true"
      android:theme="@style/Base.TextAppearance.AppCompat" />
      
   <Button
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Turn On"
      android:id="@+id/button"
      android:layout_below="@+id/imageView"
      android:layout_toStartOf="@+id/imageView"
      android:layout_toLeftOf="@+id/imageView"
      android:clickable="true"
      android:onClick="on" />
      
   <Button
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Get visible"
      android:onClick="visible"
      android:id="@+id/button2"
      android:layout_alignBottom="@+id/button"
      android:layout_centerHorizontal="true" />
      
   <Button
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="List devices"
      android:onClick="list"
      android:id="@+id/button3"
      android:layout_below="@+id/imageView"
      android:layout_toRightOf="@+id/imageView"
      android:layout_toEndOf="@+id/imageView" />
      
   <Button
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="turn off"
      android:onClick="off"
      android:id="@+id/button4"
      android:layout_below="@+id/button"
      android:layout_alignParentLeft="true"
      android:layout_alignParentStart="true" />
      
   <ListView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:id="@+id/listView"
      android:layout_alignParentBottom="true"
      android:layout_alignLeft="@+id/button"
      android:layout_alignStart="@+id/button"
      android:layout_below="@+id/textView2" />
      
   <TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Paired devices:"
      android:id="@+id/textView2"
      android:textColor="#ff34ff06"
      android:textSize="25dp"
      android:layout_below="@+id/button4"
      android:layout_alignLeft="@+id/listView"
      android:layout_alignStart="@+id/listView" />

</RelativeLayout>

Voici le contenu de Strings.xml

<resources>
   <string name="app_name">My Application</string>
</resources>

Voici le contenu de AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="com.example.sairamkrishna.myapplication" >
   <uses-permission android:name="android.permission.BLUETOOTH"/>
   <uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
   
   <application
      android:allowBackup="true"
      android:icon="@mipmap/ic_launcher"
      android:label="@string/app_name"
      android:theme="@style/AppTheme" >
      
      <activity
         android:name=".MainActivity"
         android:label="@string/app_name" >
         
         <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
         </intent-filter>
         
      </activity>
      
   </application>
</manifest>

Essayons d'exécuter votre application. Je suppose que vous avez connecté votre appareil mobile Android à votre ordinateur. Pour exécuter l'application à partir du studio Android, ouvrez l'un des fichiers d'activité de votre projet et cliquez sur l' icône Exécuter dans la barre d'outils.Si votre Bluetooth ne sera pas activé, il vous demandera votre autorisation pour activer le Bluetooth.

Maintenant, sélectionnez simplement le bouton Obtenir visible pour activer votre visibilité. L'écran suivant apparaîtra pour vous demander la permission d'activer la découverte pendant 120 secondes.

Maintenant, sélectionnez simplement l'option Liste des périphériques. Il listera les appareils couplés dans la vue de liste. Dans mon cas, je n'ai qu'un seul appareil couplé. Il est montré ci-dessous.

Maintenant, sélectionnez simplement le bouton Éteindre pour désactiver le Bluetooth. Le message suivant apparaîtra lorsque vous éteignez le Bluetooth indiquant la désactivation réussie de Bluetooth.