Учебники

Android — Bluetooth

Bluetooth является способом отправки или получения данных между двумя разными устройствами. Платформа Android включает поддержку структуры Bluetooth, которая позволяет устройству обмениваться данными по беспроводной связи с другими устройствами Bluetooth.

Android предоставляет Bluetooth API для выполнения этих различных операций.

  • Сканирование для других устройств Bluetooth

  • Получить список сопряженных устройств

  • Подключение к другим устройствам через обнаружение услуг

Сканирование для других устройств Bluetooth

Получить список сопряженных устройств

Подключение к другим устройствам через обнаружение услуг

Android предоставляет класс BluetoothAdapter для связи с Bluetooth. Создайте объект этого вызова, вызвав статический метод getDefaultAdapter (). Его синтаксис приведен ниже.

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

Чтобы включить Bluetooth вашего устройства, вызовите намерение со следующей константой Bluetooth ACTION_REQUEST_ENABLE. Его синтаксис есть.

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

Помимо этой константы есть и другие константы, предоставляемые API, которые поддерживают различные задачи. Они перечислены ниже.

Sr.No Константа и описание
1

ACTION_REQUEST_DISCOVERABLE

Эта константа используется для включения Bluetooth

2

ACTION_STATE_CHANGED

Эта константа будет уведомлять, что состояние Bluetooth было изменено

3

ACTION_FOUND

Эта константа используется для получения информации о каждом обнаруженном устройстве

ACTION_REQUEST_DISCOVERABLE

Эта константа используется для включения Bluetooth

ACTION_STATE_CHANGED

Эта константа будет уведомлять, что состояние Bluetooth было изменено

ACTION_FOUND

Эта константа используется для получения информации о каждом обнаруженном устройстве

После включения Bluetooth вы можете получить список сопряженных устройств, вызвав метод getBondedDevices (). Возвращает набор устройств Bluetooth. Его синтаксис есть.

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

Помимо перехваченных устройств, в API есть и другие методы, которые дают больше контроля над Blueetooth. Они перечислены ниже.

Sr.No Метод и описание
1

включить()

Этот метод включает адаптер, если не включен

2

включен()

Этот метод возвращает true, если адаптер включен

3

отключить ()

Этот метод отключает адаптер

4

GetName ()

Этот метод возвращает имя адаптера Bluetooth

5

setName (имя строки)

Этот метод изменяет имя Bluetooth

6

GetState ()

Этот метод возвращает текущее состояние адаптера Bluetooth.

7

startDiscovery ()

Этот метод запускает процесс обнаружения Bluetooth на 120 секунд.

включить()

Этот метод включает адаптер, если не включен

включен()

Этот метод возвращает true, если адаптер включен

отключить ()

Этот метод отключает адаптер

GetName ()

Этот метод возвращает имя адаптера Bluetooth

setName (имя строки)

Этот метод изменяет имя Bluetooth

GetState ()

Этот метод возвращает текущее состояние адаптера Bluetooth.

startDiscovery ()

Этот метод запускает процесс обнаружения Bluetooth на 120 секунд.

пример

В этом примере демонстрируется класс BluetoothAdapter для управления Bluetooth и отображения списка сопряженных устройств с помощью Bluetooth.

Чтобы поэкспериментировать с этим примером, вам нужно запустить его на реальном устройстве.

меры Описание
1 Вы будете использовать Android studio для создания приложения Android пакета com.example.sairamkrishna.myapplication.
2 Измените файл src / MainActivity.java, чтобы добавить код
3 Измените XML-файл макета. Res / layout / activity_main.xml добавьте любой компонент GUI, если это необходимо.
4 Измените AndroidManifest.xml, чтобы добавить необходимые разрешения.
5 Запустите приложение и выберите работающее устройство Android, установите на него приложение и проверьте результаты.

Вот содержание 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);
   }
}

Вот содержание activity_main.xml

Здесь abc указывает на логотип учебного пункта.

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

Вот содержимое Strings.xml

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

Вот содержание 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>

Давайте попробуем запустить ваше приложение. Я предполагаю, что вы подключили свое фактическое мобильное устройство Android к компьютеру. Чтобы запустить приложение из студии Android, откройте один из файлов деятельности вашего проекта и нажмите «Выполнить». Eclipse Run Icon значок на панели инструментов. Если ваш Bluetooth не будет включен, он попросит вашего разрешения для включения Bluetooth.

Anroid Bluetooth учебник

Теперь просто нажмите кнопку Get Visible, чтобы включить видимость. Появится следующий экран с вашим разрешением включить обнаружение на 120 секунд.

Anroid Bluetooth учебник

Теперь просто выберите опцию Список устройств. Он отобразит список сопряженных устройств в виде списка. В моем случае у меня только одно сопряженное устройство. Это показано ниже.

Anroid Bluetooth учебник

Теперь просто нажмите кнопку выключения, чтобы отключить Bluetooth. При отключении Bluetooth появится следующее сообщение, указывающее на успешное отключение Bluetooth.