Как правильно получить UUID Bluetooth на Android?C#

Место общения программистов C#
Anonymous
Как правильно получить UUID Bluetooth на Android?

Сообщение Anonymous »

Я хотел бы подключить свое устройство Android к устройству Windows через Bluetooth с последовательным портом RFCOMM.
Чтобы выяснить, запущено ли мое приложение в Windows, я пытаюсь получить его UUID с этим кодом под Android:

Код: Выделить всё

var filter = new IntentFilter();
filter.AddAction(BluetoothDevice.ActionUuid);
RegisterFilter(filter);

_bluetoothManager = GetSystemService(Context.BluetoothService) as BluetoothManager;
... и внутри метода OnReceive я ожидаю результат:

Код: Выделить всё

public override void OnReceive(Context context, Intent intent)
{
if (intent.Action == BluetoothDevice.ActionUuid)
{
var bluetoothDevice = (BluetoothDevice)intent.GetParcelableExtra(BluetoothDevice.ExtraDevice, Class.FromType(typeof(BluetoothDevice)));
var items = intent.GetParcelableArrayExtra(BluetoothDevice.ExtraUuid, Class.FromType(typeof(ParcelUuid)));

...
}
}
Я ожидаю получить UUID, советую использовать мое приложение для Windows:

Код: Выделить всё

var streamSocketListener = new StreamSocketListener();
streamSocketListener.ConnectionReceived += StreamSocketListener_ConnectionReceived;
var guid = Guid.Parse("12020AC9-7BDB-41CB-9B26-93A285E006AA");
var serviceId = RfcommServiceId.FromUuid(guid);
var rfcommServiceProvider = RfcommServiceProvider.CreateAsync(serviceId).AsTask().Result;
streamSocketListener.BindServiceNameAsync(rfcommServiceProvider.ServiceId.AsString()).AsTask().Wait();
rfcommServiceProvider.StartAdvertising(streamSocketListener);
Иногда мое Android-приложение получает UUID, но часто — нет. До сих пор я не выяснил, когда и когда этого не произойдет.
Есть идеи, как мне сделать это стабильным?

Подробнее здесь: https://stackoverflow.com/questions/786 ... on-android

Вернуться в «C#»