createInsecureRfcommSocketToServiceRecord()
был включен, начиная с Android API Level 10, поэтому документация будет рекомендовать вам использовать его, так как документы всегда следуют последней версии API.Если вы нацеливаетесь на API ниже 10 (он же 2.3.3 или Gingerbread), тогда этот метод недоступен вам публично.
Метод, который вы вызываете с помощью отражения createInsecureRfcommSocket()
, является закрытым методом внутри BluetoothDevice
, который присутствует примерно с Android 2.0.Проблема с вызовом скрытых методов заключается в том, что они не гарантированно будут присутствовать на всех устройствах или в будущем ... так что вы играете немного.Я предполагаю, что ваш метод, вероятно, будет работать большую часть времени на большинстве устройств 2.0+, поскольку службы, необходимые для реализации его общедоступного двоюродного брата createRfcommSocketToServiceRecord()
, очень похожи на уровне стека.Для гарантированной универсальной совместимости с вашей реализацией Bluetooth, вам придется настроить 2.3.3 (API Level 10) на ваше приложение.С открытым API, теперь доступным для небезопасного RFCOMM, трудно сказать, является ли более или менее вероятным изменение базовой частной реализации.