web-dev-qa-db-ja.com

Android APPをANDROID)に接続するBluetoothUUID

デバイスのBluetooth接続を追跡し、範囲外になるとアラームをトリガーするAndroidアプリケーションを構築しています。

Androidドキュメントでは、接続を確立するためにUUIDを要求しています。

「uuid」は、情報を一意に識別するために使用される文字列IDのUniversally Unique Identifier(UUID)標準化128ビット形式です。これは、アプリケーションのBluetoothサービスを一意に識別するために使用されます。

 public ConnectThread(BluetoothDevice device) {
    // Use a temporary object that is later assigned to mmSocket,
    // because mmSocket is final
    BluetoothSocket tmp = null;
    mmDevice = device;

    // Get a BluetoothSocket to connect with the given BluetoothDevice
    try {
        // MY_UUID is the app's UUID string, also used by the server code
        tmp = device.createRfcommSocketToServiceRecord(MY_UUID);
    } catch (IOException e) { }
    mmSocket = tmp;
}

両方のデバイスにアプリをインストールしていないので、独自のUUIDを設定できません。代わりに、Androidを使用したいと思います...しかし、これはドキュメントのどこにも見つかりません。

たぶん私は問題に正しくアプローチしていません。どんな助けでもありがたいです。前もって感謝します

8
FRR

BluetoothDeviceからUUIDを取得できます

    mmDevice = device;

    // Get a BluetoothSocket to connect with the given BluetoothDevice. This code below show how to do it and handle the case that the UUID from the device is not found and trying a default UUID.

    // Default UUID
    private UUID DEFAULT_UUID = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB"); 

    try {
        // Use the UUID of the device that discovered // TODO Maybe need extra device object
        if (mmDevice != null)
        {
            Log.i(TAG, "Device Name: " + mmDevice.getName());
            Log.i(TAG, "Device UUID: " + mmDevice.getUuids()[0].getUuid());
            tmp = device.createRfcommSocketToServiceRecord(mmDevice.getUuids()[0].getUuid());

        }
        else Log.d(TAG, "Device is null.");
    }
    catch (NullPointerException e)
    {
        Log.d(TAG, " UUID from device is null, Using Default UUID, Device name: " + device.getName());
        try {
            tmp = device.createRfcommSocketToServiceRecord(DEFAULT_UUID);
        } catch (IOException e1) {
            e1.printStackTrace();
        }
    }
    catch (IOException e) { }
22
Braunster