Android - Bluetooth

Bluetooth to między innymi sposób wysyłania lub odbierania danych między dwoma różnymi urządzeniami. Platforma Android obejmuje obsługę struktury Bluetooth, która umożliwia urządzeniu bezprzewodową wymianę danych z innymi urządzeniami Bluetooth.

Android zapewnia interfejs API Bluetooth do wykonywania tych różnych operacji.

  • Wyszukaj inne urządzenia Bluetooth

  • Uzyskaj listę sparowanych urządzeń

  • Połącz się z innymi urządzeniami za pomocą wykrywania usług

Android zapewnia klasę BluetoothAdapter do komunikacji z Bluetooth. Utwórz obiekt tego wywołania, wywołując metodę statyczną getDefaultAdapter (). Jego składnię podano poniżej.

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

Aby włączyć Bluetooth w swoim urządzeniu, wywołaj intencję z następującą stałą Bluetooth ACTION_REQUEST_ENABLE. Jego składnia to.

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

Oprócz tej stałej istnieją inne stałe dostarczane przez API, które obsługują różne zadania. Są one wymienione poniżej.

Sr.No Stała i opis
1

ACTION_REQUEST_DISCOVERABLE

Ta stała służy do włączania wykrywania Bluetooth

2

ACTION_STATE_CHANGED

Ta stała powiadomi o zmianie stanu Bluetooth

3

ACTION_FOUND

Ta stała służy do otrzymywania informacji o każdym wykrytym urządzeniu

Po włączeniu Bluetooth możesz uzyskać listę sparowanych urządzeń, wywołując metodę getBondedDevices (). Zwraca zestaw urządzeń Bluetooth. Jego składnia to.

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

Oprócz sparowanych urządzeń w API istnieją inne metody, które zapewniają większą kontrolę nad Bluetooth. Są one wymienione poniżej.

Sr.No Metoda i opis
1

enable()

Ta metoda włącza adapter, jeśli nie jest włączony

2

isEnabled()

Ta metoda zwraca wartość true, jeśli adapter jest włączony

3

disable()

Ta metoda wyłącza adapter

4

getName()

Ta metoda zwraca nazwę adaptera Bluetooth

5

setName(String name)

Ta metoda zmienia nazwę Bluetooth

6

getState()

Ta metoda zwraca aktualny stan adaptera Bluetooth.

7

startDiscovery()

Ta metoda rozpoczyna proces wykrywania Bluetooth przez 120 sekund.

Przykład

Ten przykład przedstawia klasę BluetoothAdapter do manipulowania Bluetooth i wyświetlania listy sparowanych urządzeń przez Bluetooth.

Aby poeksperymentować z tym przykładem, musisz go uruchomić na rzeczywistym urządzeniu.

Kroki Opis
1 Użyjesz Android Studio do stworzenia aplikacji na Androida, pakietu com.example.sairamkrishna.myapplication.
2 Zmodyfikuj plik src / MainActivity.java, aby dodać kod
3 Zmodyfikuj plik XML układu res / layout / activity_main.xml, dodaj dowolny składnik GUI, jeśli jest to wymagane.
4 Zmodyfikuj plik AndroidManifest.xml, aby dodać niezbędne uprawnienia.
5 Uruchom aplikację i wybierz działające urządzenie z systemem Android, zainstaluj na nim aplikację i sprawdź wyniki.

Oto treść 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);
   }
}

Oto treść activity_main.xml

Tutaj abc wskazuje na logo 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>

Oto treść Strings.xml

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

Oto treść 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>

Spróbujmy uruchomić Twoją aplikację. Zakładam, że podłączyłeś swoje rzeczywiste urządzenie mobilne z systemem Android do komputera. Aby uruchomić aplikację ze studia Android, otwórz jeden z plików aktywności projektu i kliknij

ikonę Uruchom na pasku narzędzi.Jeśli twój Bluetooth nie zostanie włączony, zapyta Cię o pozwolenie na włączenie Bluetooth.

Teraz wystarczy wybrać przycisk Pokaż widoczność, aby włączyć swoją widoczność. Pojawi się następujący ekran z prośbą o pozwolenie na włączenie wykrywania na 120 sekund.

Teraz wystarczy wybrać opcję Lista urządzeń. Wyświetli listę sparowanych urządzeń w widoku listy. W moim przypadku mam tylko jedno sparowane urządzenie. Jest to pokazane poniżej.

Teraz wystarczy wybrać przycisk Wyłącz, aby wyłączyć Bluetooth. Po wyłączeniu bluetooth pojawi się następujący komunikat wskazujący na pomyślne wyłączenie Bluetooth.