Краткий ответ
Как отметил DigitalNinja, телефон Android всегда будет поддерживать центральную функцию по умолчанию, поэтому, если ваш телефон поддерживает BLE, он определенно может работать в центральной роли.
Длинный ответ
Вы правы, API может быть не простым, но это связано с тем, как Bluetooth Low Energy (BLE) API был добавлен в Androidи даже до истории самой технологии BLE.
Когда BLE был впервые представлен, он был предназначен только для датчиков (например, термометр, частота сердечных сокращений, близость и т. д.) и устройств, которые взаимодействуют с этими датчиками.Датчики были периферийными устройствами в этом случае, а устройства, которые общаются с этими датчиками, являются центральными .Периферийные устройства были настоящими устройствами с низким энергопотреблением (LE), так как они просто рекламировали и отправляли данные время от времени.Центральные устройства, с другой стороны, не будут очень энергоэффективными, так как им придется постоянно сканировать устройства, подключаться к этим устройствам и нести ответственность за поддержание и мониторинг этого соединения, что означает, что радио будет включено гораздо дольше по сравнению ск периферийному устройству.
Когда API-интерфейс Bluetooth Low Energy (BLE) был добавлен в Android, он поддерживал только центральную роль.Другими словами, вы могли бы написать приложение Android для сканирования и подключения к периферийным устройствам (датчикам), но само устройство Android не могло выступать в качестве периферийного устройства (поскольку предполагалось, что вам не понадобится устройство Android, чтобы действовать в качестве датчика).Это было сделано в Android 4.3 (API 18) .
Поскольку люди стали чаще использовать BLE и технология стала более зрелой, она начала использоваться для всех видов различных приложений (например, для виртуальных серийных устройств).порт, передача данных, маяки и т. д.).Более того, на рынке стали появляться автономные центральные устройства, и на этапах разработки возникла необходимость использовать их с телефонами или, по крайней мере, протестировать их на телефонах / планшетах.Таким образом, различие между центральным и периферийным устройствами стало более размытым и нечетким, и возникла потребность в Android, чтобы начать поддерживать роль периферийных устройств.Это когда API BLE был обновлен для представления функциональности периферийных ролей, что произошло в Android 5.0 (API 21) .
Итак, чтобы ответить на ваш вопрос, если BLE поддерживается на устройстве Android, можно с уверенностью заявить, что оно по умолчанию будет поддерживать центральную роль, поскольку это является основой функциональности BLE для Android.Однако API был представлен позже для поддержки периферийной роли, поэтому не все устройства Android, поддерживающие BLE, будут поддерживать периферийную роль.
Наконец, обратите внимание, что isMultipleAdvertiseSupported - это другая функция, которая указывает, поддерживает ли ваше устройство отправку.из нескольких объявлений одновременно.Некоторые устройства поддерживают одновременную рассылку разных объявлений, а другие - нет.Однако это не значит, что они вообще не поддерживают рекламу.Устройство, которое поддерживает isMultipleAdvertisementSupported
, безусловно, будет поддерживать BluetoothLeAdvertiser
, но обратный путь не гарантирован.
В заключение, самый безопасный способ проверить, поддерживает ли ваше устройство центральную и / или периферийную роль, - этоВерсия Android и используемый уровень API, как указано двумя ссылками выше.На Android 5 (API 21) и более поздних версиях вы можете писать приложения, которые поддерживают как центральные, так и периферийные роли, тогда как до этого вы можете писать только приложения для центральной роли.
Надеюсь, это поможет.