Программно включить 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

Другие вопросы по тегам