#android #bluetooth #permissions #android-permissions
#Android #bluetooth #разрешения #android-разрешения
Вопрос:
Мне нужно ПРИВИЛЕГИРОВАННОЕ разрешение BLUETOOTH на устройство автоматической сопряжения
Как получить BLUETOOTH_PRIVILEGED разрешение на автоматическое сопряжение устройства на поврежденном устройстве, не помещая его в системное приложение?
Я пытаюсь выполнить программный автоматический ремонт с помощью одного устройства, которое я уже отобразил в ListView, не показывая «Диалог сопряжения»
IntentFilter filter = new IntentFilter("android.bluetooth.device.action.PAIRING_REQUEST");
registerReceiver(new PairingRequest(), filter);
// приемник
public static class PairingRequest extends BroadcastReceiver {
public PairingRequest() {
super();
}
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals("android.bluetooth.device.action.PAIRING_REQUEST")) {
try {
BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
int pin = intent.getIntExtra("android.bluetooth.device.extra.PAIRING_KEY", 0);
//the pin in case you need to accept for an specific pin
Log.d("PIN", " " intent.getIntExtra("android.bluetooth.device.extra.PAIRING_KEY",0));
//maybe you look for a name or address
Log.d("Bonded", device.getName());
byte[] pinBytes;
pinBytes = ("" pin).getBytes("UTF-8");
device.setPin(pinBytes);
device.setPairingConfirmation(true);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
но после вызова device.setPairingConfirmation(true);
is он переходит в исключение с этой ошибкой java.lang.SecurityException: Need BLUETOOTH PRIVILEGED permission: Neither user 10069 nor current process has android.permission.BLUETOOTH_PRIVILEGED.
Я выполнил поиск, и все предложения заключались в том, чтобы поместить приложение в system / app, но я не могу поместить туда, потому что мне нужно будет вносить обновления в будущем.
Мое устройство, которое я использую, внедрено, а приложение находится в пути «данные / приложение»
Любое предложение будет полезным. Большое спасибо!
Комментарии:
1. в документах указано: «Это недоступно для сторонних приложений». Я предполагаю, что вам нужно, чтобы ваше приложение было подписано тем же ключом, что и платформа устройства, и добавлено в белый список привилегированных разрешений — source.android.com/devices/tech/config/perms-whitelist
2. @MarkKeen спасибо, я посмотрю на белый список привилегированных разрешений
3. Я не думаю, что вы обойдетесь без того, чтобы оно находилось в папке priv-app, независимо от того, является ли оно корневым..