Seguridad de sincronización de Android bluetooth

Desde que actualizé a android 4.2 Tengo problemas cuando trato de emparejar un dispositivo El dispositivo debe ser emparejado, pero ahora se dice que acros_user_permission es necesario.

Aquí está el registro de errores:

Error: code 3: java.lang.SecurityException :: Permission Negación: broadcast from android pide ejecutar como user -1 pero está llamando desde user0; Esto requiere android.permission.INTERACT_ACROSS_USERS_FULL o android.permission.INTERACT_ACROSS_USERS.

Y aquí mi método:

public boolean ensurePaired(BluetoothDevice bd) { BluetoothDevice device = mBluetoothAdapter.getRemoteDevice(bd.getAddress()); boolean paired = false; Log.d(TAG,"Pairing with Bluetooth device with name " + device.getName()+" and address "+device.getAddress()); try { Method m = device.getClass().getMethod("createBond"); paired = (Boolean) m.invoke(device); } catch (Exception e) { return paired; } Log.d("BluetoothPlugin -", "Returning "+ "Result: "+paired); return paired; } 

Cambiaría el código a:

 public boolean ensurePaired(BluetoothDevice bd) { BluetoothDevice device = mBluetoothAdapter.getRemoteDevice(bd.getAddress()); Log.d(TAG,"Pairing with Bluetooth device with name " + device.getName()+" and address "+device.getAddress()); if(device.getBondState() != BluetoothDevice.BOND_BONDED){ device.createBond(); } } 

CreateBond es una llamada asíncrona, que volverá inmediatamente. Registrarse para ACTION_BOND_STATE_CHANGED intentos de ser notificado cuando el proceso de enlace se completa, y su resultado.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.