Java android bluetooth example

Android — Bluetooth

Among many ways, Bluetooth is a way to send or receive data between two different devices. Android platform includes support for the Bluetooth framework that allows a device to wirelessly exchange data with other Bluetooth devices.

Android provides Bluetooth API to perform these different operations.

  • Scan for other Bluetooth devices
  • Get a list of paired devices
  • Connect to other devices through service discovery

Android provides BluetoothAdapter class to communicate with Bluetooth. Create an object of this calling by calling the static method getDefaultAdapter(). Its syntax is given below.

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

In order to enable the Bluetooth of your device, call the intent with the following Bluetooth constant ACTION_REQUEST_ENABLE. Its syntax is.

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

Apart from this constant, there are other constants provided the API , that supports different tasks. They are listed below.

ACTION_REQUEST_DISCOVERABLE

This constant is used for turn on discovering of bluetooth

This constant will notify that Bluetooth state has been changed

This constant is used for receiving information about each device that is discovered

Once you enable the Bluetooth , you can get a list of paired devices by calling getBondedDevices() method. It returns a set of bluetooth devices. Its syntax is.

private SetpairedDevices; pairedDevices = BA.getBondedDevices();

Apart form the parried Devices , there are other methods in the API that gives more control over Blueetooth. They are listed below.

This method enables the adapter if not enabled

This method returns true if adapter is enabled

This method disables the adapter

This method returns the name of the Bluetooth adapter

This method changes the Bluetooth name

This method returns the current state of the Bluetooth Adapter.

This method starts the discovery process of the Bluetooth for 120 seconds.

Example

This example provides demonstration of BluetoothAdapter class to manipulate Bluetooth and show list of paired devices by the Bluetooth.

To experiment with this example , you need to run this on an actual device.

Steps Description
1 You will use Android studio to create an Android application a package com.example.sairamkrishna.myapplication.
2 Modify src/MainActivity.java file to add the code
3 Modify layout XML file res/layout/activity_main.xml add any GUI component if required.
4 Modify AndroidManifest.xml to add necessary permissions.
5 Run the application and choose a running android device and install the application on it and verify the results.

Here is the content of 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 SetpairedDevices; 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); >>

Here is the content of activity_main.xml

Читайте также:  Bluetooth наушники jbl 115bt black

Here is the content of Strings.xml

Here is the content of AndroidManifest.xml

Eclipse Run Icon

Let’s try to run your application. I assume you have connected your actual Android Mobile device with your computer. To run the app from Android studio, open one of your project’s activity files and click Run icon from the tool bar.If your Bluetooth will not be turned on then, it will ask your permission to enable the Bluetooth.

Anroid Bluetooth Tutorial

Now just select the Get Visible button to turn on your visibility. The following screen would appear asking your permission to turn on discovery for 120 seconds.

Anroid Bluetooth Tutorial

Now just select the List Devices option. It will list down the paired devices in the list view. In my case , I have only one paired device. It is shown below.

Anroid Bluetooth Tutorial

Now just select the Turn off button to switch off the Bluetooth. Following message would appear when you switch off the bluetooth indicating the successful switching off of Bluetooth.

Источник

Bluetooth в Android Studio

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

Составим простой алгоритм работы:

  1. При запуске приложения на телефоне, отобразим все Bluetooth устройства, которые уже спарены с телефоном.
  2. Организуем поиск новых устройств.
  3. Далее, по нажатию на устройство в списке, сделаем спаривание с этим устройством ( конечно же не для того, что бы появились маленькие Bluetooth –ики, этого требует протокол работы bluetooth)
  4. Создадим класс для подключение устройств друг с другом по протоколу SPP.

Что ж, план намечен приступаем к действию. Так как статья получается довольно обширная, по этому 3 и 4 пункты опишем в следующей статье.

Включение Bluetooth в телефоне

Что бы начать работать с Bluetooth первым делом его надо включить. Рассмотрим функцию реализующую проверку на включение Bluetooth, и если выключен, предлагает пользователю включить его.

public boolean BluetoothON() < if (!bleAdapter.isEnabled()) < Intent turnOn = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE); if (ActivityCompat.checkSelfPermission(this, Manifest.permission.BLUETOOTH_CONNECT) != PackageManager.PERMISSION_GRANTED) < return false; >startActivity(turnOn); > else < return true; >return false; >

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

Читайте также:  Jeep grand cherokee 2012 bluetooth

android studio bluetooth on

Bluetooth в Android Studio: показываем сопряженные устройства

Рассмотрим данный вопрос на примере приведенного ниже кода.

public void GetPairDevise(ArrayList list, BluetoothAdapter bluetoothAdapter) < if (ActivityCompat.checkSelfPermission(this, Manifest.permission.BLUETOOTH_CONNECT) != PackageManager.PERMISSION_GRANTED) < // Выдать сообщение о ошибке return; >Set pairedDevices = bluetoothAdapter.getBondedDevices(); if (pairedDevices.size() > 0) < for (BluetoothDevice device : pairedDevices) < arrayNewDevice.add(device); list.add(device.getName() + " - " + device.getAddress()); >> >

И так, функция принимает на вход переменную типа ArrayList. В этот массив мы помещаем найденные в системе устройства.

Вторым параметром наш BluetoothAdapter. По сути это наш физический модуль Bluetooth в телефоне. Узнаем о его присутствии через функцию:

getDefaultAtapter();

BluetoothAdapter bleAdapter = BluetoothAdapter.getDefaultAdapter();

Далее необходимо проверить, есть ли необходимые разрешение в нашем файле Манифесте. Без них Bluetooth работать не будет.

getBondedDevices(),

получаем все сопряженные устройства.

Set pairedDevices = bluetoothAdapter.getBondedDevices();

Далее в цикле проходим по всему сету и добавляем наши устройства в массив для дальнейшей работы и в список отображение. На картинке ниже, результат работы нашей функции.

Bluetooth pair

Bluetooth в android studio: поиск устройств

Поиск новых устройств запускает функция bluetoothAdapter.startDiscovery() . Результат работы будет в обработчике событий BroadcastResiver . Это класс в котором идет обработка сообщений.

Посмотрим нижеприведенный код. Сначала мы очистим наши списки. Далее проверим разрешение в манифесте и запустим функцию bluetoothAdapter.startDiscovery(). Инициируем два события: поиск устройств и окончание поиска устройств. После этого регистрируем каждое событие Bluetooth.

public void GetScanDevise(BluetoothAdapter mYBluetoothAdapter) < if (listNewDeviceAdapter.getCount() != 0) listNewDeviceAdapter.clear(); arrayNewDevice.clear(); if (ActivityCompat.checkSelfPermission(this, Manifest.permission.BLUETOOTH_SCAN) != PackageManager.PERMISSION_GRANTED) < return; >myBleAdapter.startDiscovery(); IntentFilter myFilter = new IntentFilter(BluetoothDevice.ACTION_FOUND); registerReceiver(mResiver, myFilter); myFilter = new IntentFilter((BluetoothAdapter.ACTION_DISCOVERY_FINISHED)); registerReceiver(mResiver, myFilter); > private final BroadcastReceiver mResiver = new BroadcastReceiver() < @SuppressLint("MissingPermission") @Override public void onReceive(Context context, Intent intent) < String action = intent.getAction(); if (BluetoothDevice.ACTION_FOUND.equals(action)) < myDevice = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE); if (myDevice.getName() != null) < arrayNewDevice.add(myDevice); deviseScanList.add(myDevice.getName() + " - " + myDevice.getAddress()); listDevice.setAdapter(listNewDeviceAdapter); >> else if (BluetoothAdapter.ACTION_DISCOVERY_FINISHED.equals(action)) < myBleAdapter.cancelDiscovery(); >> >;

Внимание! Что бы вновь начать поиск новых устройств, необходимо убедиться, что предыдущий поиск остановлен.

Также можно перед стартом нового поиска сначала вызвать функцию

bleAdapter.cancelDiscovery();

Результат работы кода будет представлен на картинке ниже.

Bluetooth scan

Внимание! Данный программный код представлен из реально работающей программы. Описывал все так как понял сам, читая открытые источники. К сожалению я не являюсь программистом Android, по этому говорю честно, данную задачу можно реализовать красивым и правильным кодом. В этой статье описан просто рабочий код и принцип работы с Bluetooth в android studio на языке java.

Источник

Saved searches

Use saved searches to filter your results more quickly

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.

Читайте также:  Наушники honor sport pro bluetooth earphones

Simple Android Bluetooth example to turn on/off radio and to view and connect with devices. Has associated code to connect to an Arduino.

License

bauerjj/Android-Simple-Bluetooth-Example

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Sign In Required

Please sign in to use Codespaces.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching Xcode

If nothing happens, download Xcode and try again.

Launching Visual Studio Code

Your codespace will open once ready.

There was a problem preparing your codespace, please try again.

Latest commit

Git stats

Files

Failed to load latest commit information.

README.md

A simple Android bluetooth example to turn on/off the radio and to view and connect with other devices. It has associated embedded firmware code to connect to an Arduino to test the bi-directional data stream.

For a complete tutorial write-up, please see here:

This is a simple demo app that creates buttons to toggle ON/OFF the bluetooth radio, view connected devices, and to discover new bluetooth enabled devices. A checkbox and status strings provide functionality to communicate with an embedded microcontroller such as an Arduino. You don’t necessarily need to connect an Arduino to still have a functioning phone application. The connected device MUST abide by the Serial Port Profile (SPP). Other complex profiles are not supported with this example and will fail to connect.

  1. Android Studio IDE and SDK
  2. HC-06 bluetooth module
  3. Arudino Uno
  4. A few breadboard wires to connect the HC-06 to the Arduino
  1. Clone this repo and open it inside of Android Studio. Note, a later SDK will work just fine (SDK 23+)
  2. Build the app
  3. Install the app to your connected Android phone. You will need to install special drivers and enable USB debugging on your phone for this to work. There are plenty of tutorials on the web for this.
  4. Clone this Arudino gist and program your Arudino
  5. Run the application on your phone after it installs. Connect to the HC-06 and you should see a number incrementing on the application every second.

Please submit all issues to the github tracker. Pull requests are also encouraged. General comments can be left either inside github or at mcuhq.com.

About

Simple Android Bluetooth example to turn on/off radio and to view and connect with devices. Has associated code to connect to an Arduino.

Источник

Оцените статью
Adblock
detector