Как написать программу для подключения к Bluetooth-устройству a2dp с помощью pre 3.0 Android?
Моему приложению необходимо подключиться к устройству a2dp через Bluetooth, и я хочу "иметь возможность запрашивать видимые устройства Bluetooth, затем выбрать устройство a2dp и заставить его" подключаться через a2dp ", чтобы звук начинал воспроизводиться через подключенное устройство" но мой телефон работает пряник (2.3.3).
Я прошел основное руководство по Bluetooth по адресу http://developer.android.com/guide/topics/wireless/bluetooth.html и дошел до части, которая мне нужна для подключения к устройству Bluetooth, а затем я прочитал нижнюю часть страницы:
"Начиная с Android 3.0, Bluetooth API включает поддержку работы с профилями Bluetooth". -> Значит ли это, что я SOL? Есть ли какой-нибудь способ программно (почему stackru помечает программно как орфографическую ошибку?!) подключиться к устройству a2dp, используя версию Android до версии 3.0? Является ли мой единственный способ направить пользователя, чтобы войти в его настройки / подтянуть настройки программно?? Поскольку я могу сделать это через настройки, я думаю, я просто предполагал, что это будет возможно и через мое приложение.
Помогите?
2 ответа
Некоторые из классов Bluetooth (такие как BluetoothA2dp) скрыты в Gingerbread. Это означает, что их объявление аннотировано @hide, и они не включены в SDK (Android.jar). Это сделано намеренно, так как эти API, вероятно, будут изменены в более новых версиях Android. Как правило, не рекомендуется использовать скрытые API, поскольку ваше приложение может перестать работать на более новых версиях Android, но если вы уверены, что хотите этого, следуйте http://devmaze.wordpress.com/2011/01/18/using-com-android-internal-part-1-introduction/ - Com-внутренняя часть-1-введение /
Как только вы получите доступ к ним, сделайте что-то вроде (просто подсказка):
BluetoothA2dp mBluetoothA2dp = new BluetoothA2dp(context);
BluetoothDevice device = BluetoothAdapter.getDefaultAdapter().
// Loop through paired devices
for (BluetoothDevice device : mBluetoothAdapter.getBondedDevices()) {
if (device.getName().contains("whatyouwant")) {
mBluetoothA2dp.addSink(device);
}
}
Итак, после гораздо большего исследования, кажется, что невозможно программно подключиться к устройству A2DP на устройстве Android до версии 3.0. Я собираюсь пометить это как ответ, но, если кто-то найдет иное, поправьте меня, потому что я действительно хотел бы сделать это программно.