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.