Программно включить Bluetooth на Android
Я пытаюсь определить предпочтительный способ программного включения Bluetooth на Android. Я обнаружил, что работает любой из следующих методов (по крайней мере, на Android 4.0.4...):
public class MyActivity extends Activity {
public static final int MY_BLUETOOTH_ENABLE_REQUEST_ID = 6;
...
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(enableBtIntent, MY_BLUETOOTH_ENABLE_REQUEST_ID);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == MY_BLUETOOTH_ENABLE_REQUEST_ID) {
if (resultCode == RESULT_OK) {
// Request granted - bluetooth is turning on...
}
if (resultCode == RESULT_CANCELED) {
// Request denied by user, or an error was encountered while
// attempting to enable bluetooth
}
}
}
или же...
BluetoothAdapter.getDefaultAdapter().enable();
Первый запрашивает у пользователя разрешение перед включением, а второй просто беззвучно включает Bluetooth (но требует разрешения "android.permission.BLUETOOTH_ADMIN"). Один или другой старый / устаревший и / или один метод доступен только на некоторых устройствах? или это просто вопрос личных предпочтений в отношении того, что я использую?
3 ответа
Это четко упоминается в Android Doc
Bluetooth никогда не должен быть включен без прямого согласия пользователя. Если вы хотите включить Bluetooth для создания беспроводного соединения, вы должны использовать намерение ACTION_REQUEST_ENABLE, которое вызовет диалоговое окно с запросом разрешения пользователя на включение Bluetooth. Метод enable() предоставляется только для приложений, которые включают в себя пользовательский интерфейс для изменения настроек системы, таких как приложение "Power Manager".
Оба эти метода будут работать. Вы должны выбрать в зависимости от ваших целей и требований. Надеюсь, что это отвечает на ваши вопросы.
Это работает для меня... BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); mBluetoothAdapter.enable();
Я думаю, что это может быть полезно...
/questions/2073055/kak-vklyuchit-otklyuchit-bluetooth-programmno-v-android/2073082#2073082
Вам также необходимо добавить следующие разрешения в файл манифеста.
android.permission.BLUETOOTH,
android.permission.BLUETOOTH_ADMIN