Androidアプリ開発

ペアリング済みのデバイスリストを取得する

この記事は約8分で読めます。
記事内に広告が含まれています。
スポンサーリンク

この記事は Androidスマホ用のアプリ開発の中で、
今後の開発で再使用性が高いと思われるコーディングをまとめたものです。
Java での開発経験、XML構文規則、Android のアプリ開発経験がある方を対象としています。
Android のアプリ開発でお役にたててれば、嬉しいです。
(これから Android のアプリ開発や Java での開発を始めたい方への案内は、
記事の最後で紹介します)

この記事のテーマ


ペアリングしているBluetoothデバイスのリストを取得する

GPS位置情報中継アプリ(MLS)では、ペアリングしているBluetoothデバイスをリスト表示しています。

ポイント

Bluetooth機器(デバイス)との接続には、機器固有のMACアドレスが必要です。
デバイスのMACアドレスを取得する方法としては、デバイスから定期的に発信されるビーコン(広告パケット)から取得する方法、デバイスとのペアリング情報から取得する方法などがあります。
今回は、デバイスとのペアリング情報から取得する方法を紹介します。

Android デバイスを Bluetooth 経由で接続する

ペアリングしているデバイスリストを取得する

ペアリングしているデバイスリストを取得するためにBluetoothAdaptergetBondedDevicesメソッドを使用します。
Android12以降でBluetoothAdapterの取得方法が変更されていますので注意が必要です。

    private BluetoothAdapter bluetoothAdapter;  
    :
    if (Build.VERSION.SDK_INT >= 31) {
        BluetoothManager bluetoothManager = (BluetoothManager) context.getSystemService(Context.BLUETOOTH_SERVICE);
        bluetoothAdapter = bluetoothManager.getAdapter();
    } else {
        bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
    }
    :
    ArrayList<Device> devices = new ArrayList<>();
    Set<BluetoothDevice> pairedDevices = bluetoothAdapter.getBondedDevices();
    if (pairedDevices.size() > 1) {
        for (BluetoothDevice device : pairedDevices) {
            devices.add(new Device(device.getName(), device.getAddress()));
        }
    }
    :

取得したデバイス情報(BluetoothDevice)は、デバイス名とMACアドレスを格納するエンティティクラス(Device)に格納しています。

◎デバイス名とMACアドレスを格納するエンティティクラス

public class Device {
    public String name;
    public String mac;
    public Device(String name,
                  String mac) {
        this.name = name;
        this.mac = mac;
    }
}

◎ユーザ権限の指定

BluetoothAdaptergetBondedDevicesメソッドを使用するには、マニフェストファイルに権限を指定する必要があります。

<uses-permission android:name="android.permission.BLUETOOTH_CONNECT"/>

Android12以降では、ユーザ権限の指定のほかにユーザー承認をリクエストする必要あります。

今回は、ここまでです。

実行ペアリング済みのデバイスリストを取得しているAndroidアプリです。

MLSで対応している高性能GPSロガーです♪

誤字脱字、意味不明でわかりづらい、
もっと詳しく知りたいなどのご意見は、
このページの最後にある
コメントか、
こちらから、お願いいたします♪

ポチッとして頂けると、
次のコンテンツを作成する励みになります♪

ブログランキング・にほんブログ村へ

これからAndroidのアプリ開発やJavaでの開発を始めたい方へ

アプリケーション開発経験がない方や、アプリケーション開発経験がある方でも、Java や C# などのオブジェクト指向言語が初めての方は、Android のアプリ開発ができるようになるには、かなりの時間がかかります。
オンラインスクールでの習得を、強くおススメします。

未経験者からシステムエンジニアを目指すのに最適です。まずは無料相談から♪

未経験者からプログラマーを目指すのに最適です。まずは無料カウンセリングから♪

カリキュラムとサポートがしっかりしています。お得なキャンペーンとかいろいろやっています♪

ゲーム系に強いスクール、UnityやUnrealEngineを習得するのに最適です。まずは無料オンライン相談から♪

参考になったら、💛をポッとしてね♪