Android lolipop java.lang.SecurityException: Ni el usuario ni el proceso actual tiene android.permission.BLUETOOTH_PRIVILEGED
Actualmente estoy trabajando en una aplicación de Android que se conecta a un dispositivo a través de Bluetooth usando Eclipse (Java). Actualmente lo tengo trabajando en Android 4.4 (Kit-Kat) y abajo, pero después de la nueva actualización que es Android 5 (Lolipop). Se produce una excepción de seguridad.
Manifiesto:
- ¿Está bien usar la clase estática de "ayudante de base de datos"?
- Cómo eliminar MenuItems de menú de forma programática?
- Java compilador para teléfonos Android
- ¿Dónde puedo descargar JDK 1.6u20 de 64 bits?
- Android Studio E / dalvikvm: No se encontró la clase ... referenciada desde el método
<uses-permission android:name="android.permission.BLUETOOTH" /> <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> <uses-permission android:name="android.permission.BLUETOOTH_PRIVILEGED" /> <uses-feature android:name="android.hardware.bluetooth_le" android:required="false" />
Código:
mBleScanner.startScan(filters, scanSettings, mLeScanCallback); private ScanCallback mLeScanCallback = new ScanCallback() { @Override public void onScanResult(int callbackType, ScanResult result) { BluetoothDevice device = result.getDevice(); if(device.getName() != null) { if(device.getName().toUpperCase().contains("MyDevice")) { mBleScanner.stopScan(mLeScanCallback); if (device.getBondState() == BluetoothDevice.BOND_BONDED) { Connect(device.getAddress().toString()); } else { // pair device device.setPairingConfirmation(true); device.createBond(); } } } } }; ... .. . private void BondDevice(BluetoothGattCharacteristic bgc, boolean pnEnable) { boolean bool = gatt.setCharacteristicNotification(bgc, true); // this line throw security exception BluetoothGattDescriptor bgd=bgc.getDescriptor(UUID.fromString(BLE_DESCRIPTOR_NOTIFY)); byte[] arrayOfByte = pnEnable ? BluetoothGattDescriptor.ENABLE_NOTIFICATION_VALUE: BluetoothGattDescriptor.DISABLE_NOTIFICATION_VALUE; gattDescriptor.setValue(arrayOfByte); mBluetoothGatt.writeDescriptor(bgd); }
Rastro de la pila:
04-27 12:36:24.559: W/BluetoothGatt(17764): Unhandled exception in callback 04-27 12:36:24.559: W/BluetoothGatt(17764): java.lang.SecurityException: Need BLUETOOTH_PRIVILEGED permission: Neither user 10215 nor current process has android.permission.BLUETOOTH_PRIVILEGED. 04-27 12:36:24.559: W/BluetoothGatt(17764): at android.os.Parcel.readException(Parcel.java:1540) 04-27 12:36:24.559: W/BluetoothGatt(17764): at android.os.Parcel.readException(Parcel.java:1493) 04-27 12:36:24.559: W/BluetoothGatt(17764): at android.bluetooth.IBluetoothGatt$Stub$Proxy.registerForNotification(IBluetoothGatt.java:1163) 04-27 12:36:24.559: W/BluetoothGatt(17764): at android.bluetooth.BluetoothGatt.setCharacteristicNotification(BluetoothGatt.java:1239) 04-27 12:36:24.559: W/BluetoothGatt(17764): at com.vibease.ap3.service.ServiceBLE.BondDevice(ServiceBLE.java:568) 04-27 12:36:24.559: W/BluetoothGatt(17764): at com.vibease.ap3.service.ServiceBLE.CheckDevice(ServiceBLE.java:518) 04-27 12:36:24.559: W/BluetoothGatt(17764): at com.vibease.ap3.service.ServiceBLE.access$7(ServiceBLE.java:493) 04-27 12:36:24.559: W/BluetoothGatt(17764): at com.vibease.ap3.service.ServiceBLE$2.onServicesDiscovered(ServiceBLE.java:373) 04-27 12:36:24.559: W/BluetoothGatt(17764): at android.bluetooth.BluetoothGatt$1.onSearchComplete(BluetoothGatt.java:309) 04-27 12:36:24.559: W/BluetoothGatt(17764): at android.bluetooth.IBluetoothGattCallback$Stub.onTransact(IBluetoothGattCallback.java:217) 04-27 12:36:24.559: W/BluetoothGatt(17764): at android.os.Binder.execTransact(Binder.java:446)
¿Algún consejo? Gracias.
- Diseño de fragmentos: ¿Cómo adaptarse a múltiples diseños de pantalla mostrando / ocultando fragmentos dentro de una sola actividad?
- RecyclerView se enfoca cuando se cierra DrawerLayout
- Android NDK posibilidad de descompilar código nativo
- La aplicación Android se bloquea en Lollipop
- Enlace de datos de Android en una lista expandible
- android esperando respuesta del servidor
- ¿Cómo distinguir entre diferentes redes wifi?
- Cómo obtener una matriz de bytes de FileInputStream sin error OutOfMemory
04-27 12: 36: 24.559: W / BluetoothGatt (17764): java.lang.SecurityException: Necesita permiso
BLUETOOTH_PRIVILEGED
: Ni el usuario 10215 ni el proceso actual tieneandroid.permission.BLUETOOTH_PRIVILEGED
.
Sólo tiene que agregar el permiso que está pidiendo:
<uses-permission android:name="android.permission.BLUETOOTH_PRIVILEGED" />
Parece que Google cambia algo de seguridad en el chip Bluetooth. Mi chip Bluetooth contiene parte de la dirección bloqueada por esta seguridad. Por eso encontré mi problema. Ya que usé un chip diferente. Todo funciona bien ahora.
P / s: se olvidó de contestar esto hace mucho tiempo
<uses-sdk android:minSdkVersion="14" android:targetSdkVersion="21" />
¿Cuál es su versión de SDK de destino? ¿Su app soporta lollipop?
- El paquete está en conflicto con un paquete existente con el mismo nombre
- Android: efecto curl de página como iphone