Android - Bluetooth

Tra i tanti modi, il Bluetooth è un modo per inviare o ricevere dati tra due dispositivi diversi. La piattaforma Android include il supporto per il framework Bluetooth che consente a un dispositivo di scambiare dati in modalità wireless con altri dispositivi Bluetooth.

Android fornisce l'API Bluetooth per eseguire queste diverse operazioni.

  • Cerca altri dispositivi Bluetooth

  • Ottieni un elenco di dispositivi accoppiati

  • Connettiti ad altri dispositivi tramite il rilevamento dei servizi

Android fornisce la classe BluetoothAdapter per comunicare con Bluetooth. Crea un oggetto di questa chiamata chiamando il metodo statico getDefaultAdapter (). La sua sintassi è data di seguito.

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

Per abilitare il Bluetooth del tuo dispositivo, chiama l'intento con la seguente costante Bluetooth ACTION_REQUEST_ENABLE. La sua sintassi è.

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

Oltre a questa costante, ci sono altre costanti fornite dall'API, che supporta diverse attività. Sono elencati di seguito.

Suor n Costante e descrizione
1

ACTION_REQUEST_DISCOVERABLE

Questa costante viene utilizzata per attivare la rilevazione del bluetooth

2

ACTION_STATE_CHANGED

Questa costante notificherà che lo stato Bluetooth è stato modificato

3

ACTION_FOUND

Questa costante viene utilizzata per ricevere informazioni su ogni dispositivo rilevato

Una volta abilitato il Bluetooth, è possibile ottenere un elenco di dispositivi accoppiati chiamando il metodo getBondedDevices (). Restituisce un insieme di dispositivi bluetooth. La sua sintassi è.

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

Oltre ai dispositivi parati, ci sono altri metodi nell'API che danno un maggiore controllo su Blueetooth. Sono elencati di seguito.

Suor n Metodo e descrizione
1

enable()

Questo metodo abilita l'adattatore se non abilitato

2

isEnabled()

Questo metodo restituisce true se l'adattatore è abilitato

3

disable()

Questo metodo disabilita l'adattatore

4

getName()

Questo metodo restituisce il nome dell'adattatore Bluetooth

5

setName(String name)

Questo metodo cambia il nome Bluetooth

6

getState()

Questo metodo restituisce lo stato corrente dell'adattatore Bluetooth.

7

startDiscovery()

Questo metodo avvia il processo di rilevamento del Bluetooth per 120 secondi.

Esempio

Questo esempio fornisce una dimostrazione della classe BluetoothAdapter per manipolare il Bluetooth e mostrare l'elenco dei dispositivi accoppiati tramite Bluetooth.

Per sperimentare questo esempio, è necessario eseguirlo su un dispositivo reale.

Passi Descrizione
1 Utilizzerai Android Studio per creare un'applicazione Android un pacchetto com.example.sairamkrishna.myapplication.
2 Modifica il file src / MainActivity.java per aggiungere il codice
3 Modificare il file XML di layout res / layout / activity_main.xml aggiungere qualsiasi componente della GUI, se necessario.
4 Modifica AndroidManifest.xml per aggiungere le autorizzazioni necessarie.
5 Esegui l'applicazione e scegli un dispositivo Android in esecuzione, installa l'applicazione su di esso e verifica i risultati.

Ecco il contenuto di 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);
   }
}

Ecco il contenuto di activity_main.xml

Qui abc indica il logo di 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>

Ecco il contenuto di Strings.xml

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

Ecco il contenuto di 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>

Proviamo a eseguire la tua applicazione. Presumo che tu abbia collegato il tuo attuale dispositivo mobile Android al tuo computer. Per eseguire l'app da Android Studio, apri uno dei file di attività del tuo progetto e fai clic sull'icona Esegui dalla barra degli strumenti.Se il tuo Bluetooth non sarà attivato, chiederà il tuo permesso per abilitare il Bluetooth.

Ora seleziona il pulsante Ottieni visibilità per attivare la tua visibilità. Apparirà la seguente schermata chiedendoti il ​​permesso di attivare il rilevamento per 120 secondi.

Ora seleziona semplicemente l'opzione Elenca dispositivi. Elenca i dispositivi accoppiati nella visualizzazione elenco. Nel mio caso, ho un solo dispositivo accoppiato. È mostrato di seguito.

Ora seleziona il pulsante Spegni per disattivare il Bluetooth. Il seguente messaggio apparirà quando si spegne il Bluetooth che indica l'avvenuto spegnimento del Bluetooth.