puedo - opciones de desarrollador android 7
Cómo habilitar/deshabilitar bluetooth programáticamente en Android (8)
Agregue los siguientes permisos en su archivo de manifiesto:
<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
Habilita bluetooth usa esto
BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
if (!mBluetoothAdapter.isEnabled()) {
mBluetoothAdapter.enable();
}else{Toast.makeText(getApplicationContext(), "Bluetooth Al-Ready Enable", Toast.LENGTH_LONG).show();}
Deshabilita bluetooth usa esto
BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
if (mBluetoothAdapter.isEnabled()) {
mBluetoothAdapter.disable();
}
Hola a todos,
Quiero habilitar / deshabilitar Bluetooth a través del programa ... Tengo el siguiente código.
BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
if (!mBluetoothAdapter.isEnabled()) {
Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);
Pero este tipo de código no funciona en SDK 1.5 ... ¿Cómo puedo hacer lo mismo en SDK 1.5?
Android BluetoothAdapter dice que ha estado disponible desde API Nivel 5. API Level 5 es Android 2.0.
Puede intentar usar un respaldo de la API Bluetooth (no lo ha probado personalmente): http://code.google.com/p/backport-android-bluetooth/
Aquí hay una forma un poco más robusta de hacerlo, también manejando los valores de retorno de enable()/disable()
métodos enable()/disable()
:
public static boolean setBluetooth(boolean enable) {
BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
boolean isEnabled = bluetoothAdapter.isEnabled();
if (enable && !isEnabled) {
return bluetoothAdapter.enable();
}
else if(!enable && isEnabled) {
return bluetoothAdapter.disable();
}
// No need to change bluetooth state
return true;
}
Y agrega los siguientes permisos en tu archivo de manifiesto:
<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
Pero recuerda estos puntos importantes:
Esta es una llamada asíncrona: se devolverá de inmediato, y los clientes deberán escuchar ACTION_STATE_CHANGED para recibir notificaciones de los cambios de estado del adaptador posteriores. Si esta llamada devuelve verdadero, el estado del adaptador pasará inmediatamente de STATE_OFF a STATE_TURNING_ON, y algún tiempo después pasará a STATE_OFF o STATE_ON. Si esta llamada devuelve falso, hubo un problema inmediato que impedirá que se encienda el adaptador, como el modo avión, o el adaptador ya está encendido.
ACTUALIZAR:
Ok, entonces, ¿cómo implementar bluetooth listener ?:
private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
final String action = intent.getAction();
if (action.equals(BluetoothAdapter.ACTION_STATE_CHANGED)) {
final int state = intent.getIntExtra(BluetoothAdapter.EXTRA_STATE,
BluetoothAdapter.ERROR);
switch (state) {
case BluetoothAdapter.STATE_OFF:
// Bluetooth has been turned off;
break;
case BluetoothAdapter.STATE_TURNING_OFF:
// Bluetooth is turning off;
break;
case BluetoothAdapter.STATE_ON:
// Bluetooth has been on
break;
case BluetoothAdapter.STATE_TURNING_ON:
// Bluetooth is turning on
break;
}
}
}
};
¿Y cómo registrar / anular el registro del receptor? (En tu clase de Activity
)
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// ...
// Register for broadcasts on BluetoothAdapter state change
IntentFilter filter = new IntentFilter(BluetoothAdapter.ACTION_STATE_CHANGED);
registerReceiver(mReceiver, filter);
}
@Override
public void onStop() {
super.onStop();
// ...
// Unregister broadcast listeners
unregisterReceiver(mReceiver);
}
La solución de prijin funcionó perfectamente para mí. Es justo mencionar que se necesitan dos permisos adicionales:
<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
Cuando se agregan, habilitar y deshabilitar funciona sin problemas con el adaptador bluetooth predeterminado.
Para habilitar Bluetooth, puede usar cualquiera de las siguientes funciones:
public void enableBT(View view){
BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
if (!mBluetoothAdapter.isEnabled()){
Intent intentBtEnabled = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
// The REQUEST_ENABLE_BT constant passed to startActivityForResult() is a locally defined integer (which must be greater than 0), that the system passes back to you in your onActivityResult()
// implementation as the requestCode parameter.
int REQUEST_ENABLE_BT = 1;
startActivityForResult(intentBtEnabled, REQUEST_ENABLE_BT);
}
}
La segunda función es:
public void enableBT(View view){
BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
if (!mBluetoothAdapter.isEnabled()){
mBluetoothAdapter.enable();
}
}
La diferencia es que la primera función hace que la aplicación solicite permiso al usuario para encender el Bluetooth o denegar. La segunda función hace que la aplicación encienda el Bluetooth directamente.
Para desactivar Bluetooth, use la siguiente función:
public void disableBT(View view){
BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
if (mBluetoothAdapter.isEnabled()){
mBluetoothAdapter.disable();
}
}
NOTA / La primera función solo necesita el siguiente permiso para definirse en el archivo AndroidManifest.xml:
<uses-permission android:name="android.permission.BLUETOOTH"/>
Mientras que, la segunda y tercera funciones necesitan los siguientes permisos:
<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
Utilicé el siguiente código para desactivar BT cuando mi aplicación se inicia y funciona bien. No estoy seguro de si esta es la forma correcta de implementar esto, ya que google recomienda no usar "bluetooth.disable ();" sin acción explícita del usuario para desactivar Bluetooth.
BluetoothAdapter bluetooth = BluetoothAdapter.getDefaultAdapter();
bluetooth.disable();
Solo utilicé el permiso a continuación.
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
este código funcionó para mí ...
//Disable bluetooth
BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
if (mBluetoothAdapter.isEnabled()) {
mBluetoothAdapter.disable();
}
Para que esto funcione, debe tener los siguientes permisos:
<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
prueba esto:
//this method to check bluetooth is enable or not: true if enable, false is not enable
public static boolean isBluetoothEnabled()
{
BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
if (!mBluetoothAdapter.isEnabled()) {
// Bluetooth is not enable :)
return false;
}
else{
return true;
}
}
//method to enable bluetooth
public static void enableBluetooth(){
BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
if (!mBluetoothAdapter.isEnabled()) {
mBluetoothAdapter.enable();
}
}
//method to disable bluetooth
public static void disableBluetooth(){
BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
if (mBluetoothAdapter.isEnabled()) {
mBluetoothAdapter.disable();
}
}
Agregue estos permisos en manifiesto
<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>