En mi aplicación, necesito activar bluetooth de mi dispositivo con un clic de botón. ¿Cómo puedo lograr eso? Un ejemplo será realmente útil. Además, ¿qué permisos necesito incluir en mi mainfest.xml para lo mismo?Cómo activar el botón de Bluetooth en
Respuesta
siguiente son extractos de código de android documentation on Bluetooth
En el archivo de manifiesto para los permisos: Código
<manifest ... >
<uses-permission android:name="android.permission.BLUETOOTH" />
...
</manifest>
Fuente para habilitar Bluetooth
BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
if (mBluetoothAdapter == null) {
// Device does not support Bluetooth
}
if (!mBluetoothAdapter.isEnabled()) {
Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);
}
Si se habilita el Bluetooth tiene éxito, su Activity
recibirá el RESULT_OK
código de resultado en la devolución de llamada onActivityResult()
. Si Bluetooth no se activó debido a un error (o el usuario respondió "No"), el código de resultado será RESULT_CANCELED
.
No olvide que hay Otra forma de activar el bluetooth sin usar la solicitud de intención. Simplemente llame a mBluetoothAdapter.enable(); esto lo activará sin el diálogo de permiso emergente del usuario. (solo se usa de esta forma si no se quiere ingresar el usuario) – JPM
@JPM sí, pero 1) esto requiere el permiso 'BLUETOOTH_ADMIN'; 2) se desaconseja en la documentación de Android SDK utilizar 'enable()' a menos que implemente su propia IU para el consentimiento del usuario o si está implementando una aplicación de administrador de configuración del sistema o similar. – JHH
Esta solución le ayudará Android Bluetooth. Pero para obtener más información sobre el uso de Bluetooth con Android junto con manifest.xml, debe ver este Android Bluetooth.
Para obtener el permiso que necesita.
<manifest ... >
<uses-permission android:name="android.permission.BLUETOOTH" />
...
</manifest>
Activar Bluetooth en Android no es difícil. Pero debe prestar atención a algunos detalles. Hay 3 tipos de métodos para activar Bluetooth en Android.
1.Fuerza para abrir Bluetooth.
Para obtener el adaptador bluetooth predeterminado, es decir, use BluetoothAdapter.getDefaultAdapter()
; Es necesario este permiso:
<uses-permission android:name="android.permission.BLUETOOTH" />
Con el fin de obligar a abrir Bluetooth, es decir, utilizar BluetoothAdapter.enable()
; Es necesario este permiso:
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
Aquí es un ejemplo de código
/**
* Bluetooth Manager
*
* @author ifeegoo www.ifeegoo.com
*
*/
public class BluetoothManager
{
/**
* Whether current Android device support Bluetooth.
*
* @return true:Support Bluetooth false:not support Bluetooth
*/
public static boolean isBluetoothSupported()
{
return BluetoothAdapter.getDefaultAdapter() != null ? true : false;
}
/**
* Whether current Android device Bluetooth is enabled.
*
* @return true:Bluetooth is enabled false:Bluetooth not enabled
*/
public static boolean isBluetoothEnabled()
{
BluetoothAdapter bluetoothAdapter = BluetoothAdapter
.getDefaultAdapter();
if (bluetoothAdapter != null)
{
return bluetoothAdapter.isEnabled();
}
return false;
}
/**
* Force to turn on Bluetooth on Android device.
*
* @return true:force to turn on Bluetooth success
* false:force to turn on Bluetooth failure
*/
public static boolean turnOnBluetooth()
{
BluetoothAdapter bluetoothAdapter = BluetoothAdapter
.getDefaultAdapter();
if (bluetoothAdapter != null)
{
return bluetoothAdapter.enable();
}
return false;
}
}
El método anterior para activar el Bluetooth no le dirá al usuario si se enciende el éxito de Bluetooth o not.When se llama al método enable(), no activará Bluetooth al 100%. Debido a la razón por la que algunas aplicaciones de seguridad se niegan a hacerlo, y así sucesivamente. Debe prestar atención al valor de retorno del método enable().
la API oficial del método de activación() nos dice que:
Bluetooth nunca debe estar habilitado y sin el consentimiento del usuario directo. Si desea activar Bluetooth para crear una conexión inalámbrica, debe usar el ACTION_REQUEST_ENABLE Intent, que generará un diálogo que solicita permiso al usuario para activar Bluetooth. El método enable() se proporciona solo para aplicaciones que incluyen una interfaz de usuario para cambiar la configuración del sistema, como una aplicación "administrador de energía".
Por lo tanto, no es adecuado que encienda Bluetooth con el método enable() a menos que haga saber al usuario lo que hará.
2.Use Alerta de sistema para recordarle a los usuarios que activará Bluetooth mediante startActivityForResult.
this.startActivityForResult(requestBluetoothOn, REQUEST_CODE_BLUETOOTH_ON)
need this permission:
<uses-permission android:name="android.permission.BLUETOOTH" />
public class MainActivity extends Activity
{
/**
* Custom integer value code for request to turn on Bluetooth,it's equal
*requestCode in onActivityResult.
*/
private static final int REQUEST_CODE_BLUETOOTH_ON = 1313;
/**
* Bluetooth device discovery time,second。
*/
private static final int BLUETOOTH_DISCOVERABLE_DURATION = 250;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
this.setContentView(R.layout.activity_main);
if ((BluetoothManager.isBluetoothSupported())
&& (!BluetoothManager.isBluetoothEnabled()))
{
this.turnOnBluetooth();
}
}
/**
* Use system alert to remind user that the app will turn on Bluetooth
*/
private void turnOnBluetooth()
{
// request to turn on Bluetooth
Intent requestBluetoothOn = new Intent(
BluetoothAdapter.ACTION_REQUEST_ENABLE);
// Set the Bluetooth discoverable.
requestBluetoothOn
.setAction(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);
// Set the Bluetooth discoverable time.
requestBluetoothOn.putExtra(
BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION,
BLUETOOTH_DISCOVERABLE_DURATION);
// request to turn on Bluetooth
this.startActivityForResult(requestBluetoothOn,
REQUEST_CODE_BLUETOOTH_ON);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
if (requestCode == REQUEST_CODE_BLUETOOTH_ON)
{
switch (resultCode)
{
// When the user press OK button.
case Activity.RESULT_OK:
{
// TODO
}
break;
// When the user press cancel button or back button.
case Activity.RESULT_CANCELED:
{
// TODO
}
break;
default:
break;
}
}
}
}
Esta es una mejor forma de activar Bluetooth en Android.
3.Guía a los usuarios a la configuración de Bluetooth del sistema para activar Bluetooth por sí mismos.
// Guide users to system Bluetooth settings to turn on Bluetooth by himselves.
this.startActivity(new Intent(Settings.ACTION_BLUETOOTH_SETTINGS));
En mi app.Considering el código lógico y también la experiencia del usuario, utilizo los pasos seguir para activar Bluetooth:
1.Utilice activar() para encender Bluetooth.But voy a contar los usuarios que activarán Bluetooth, si me permiten hacer esto, llamaré a enable() para activar Bluetooth. Esto es mejor que llamar al sistema de alerta, porque podemos controlar el contenido para recordarle al usuario. Debe prestar atención que no es 100% activar Bluetooth mediante enable(), algunas aplicaciones de seguridad u otras razones lo niegan a hacer esto. Pero podemos estimar que si activamos o no el éxito de Bluetooth por el valor de retorno de la método enable().
2.Si el método enable() devuelve falso, entonces usamos startActivityForResult para recordarle a los usuarios que activaremos Bluetooth.
3.Si el paso 2 no funciona por alguna razón, puede guiar a los usuarios para que accedan a la configuración de Bluetooth del sistema para activar Bluetooth por sí mismos.
Algunos más información sobre su vez y desactivar el Bluetooth en Android: http://www.ifeegoo.com/android-turn-on-and-turn-off-bluetooth.html
- 1. ¿Activar Bluetooth SPP en Android?
- 2. ¿Cómo activar/desactivar el botón de zoom (botón verde +)?
- 3. jQuery Activar botón de disparo
- 4. Desactivar/Activar el botón Atrás de la vista de detalles
- 5. Activar el botón de inicio Barra de acciones Sherlock, Sherlockfragment
- 6. ¿Hay alguna forma de activar y desactivar el bluetooth y/o wifi mediante programación en iOS?
- 7. Activar el botón del flash a través de javascript
- 8. botón 'buscar' para activar la función autocompletar
- 9. Cómo habilitar/deshabilitar bluetooth programáticamente en android
- 10. Jquery y activar un clic en un botón oculto
- 11. Cómo activar efecto de hightlight en UIBarButtonItem
- 12. ¿Cómo puedo activar el botón predeterminado en un formulario sin hacer clic en él (winforms)?
- 13. ¿Es posible activar el elemento jQuery datepicker tanto en la entrada como en el botón?
- 14. botón WPF Activar cuadros de eventos/Uchecked con un manejador
- 15. ¿Cómo hacer que el botón Activar y desactivar programáticamente en Android?
- 16. modo de detección Desactivar Bluetooth en Android
- 17. cómo activar el visón en Behat
- 18. Cómo activar el GPS en Android
- 19. ¿Cómo recuperar la información del dispositivo Bluetooth con el selector de dispositivo Android con Bluetooth?
- 20. Hacer la tecla Intro en un formulario HTML enviar en lugar de activar el botón
- 21. Al activar el ícono de botón de la IU de jQuery - roto en IE y Chrome
- 22. cómo habilitar el botón en extjs?
- 23. Cómo activar el seguimiento de WCF?
- 24. Cómo activar el evento desde el botón dentro de la cuadrícula de datos en Silverlight y MVVM
- 25. ¿Cómo activar el emulador de Android?
- 26. iPhone apague bluetooth GKPeerPickerController
- 27. Android Bluetooth - Cómo iniciar el emparejamiento
- 28. Cómo activar la pantalla durante el bloqueo parcial de activación
- 29. Activar el tabulador de TabControl
- 30. Eclipse, Cómo activar plegado en archivo XML?
http://stackoverflow.com/questions/1975655/enable-android-bluetooth-from-documentation –