Solicitando Permissões em Tempo de Execução (ANDROID-Flutter)
Este guia ajuda a solicitar permissões em tempo de execução no framework Flutter.
Algumas permissões do Android devem ser solicitadas dependendo da versão do Android do usuário. Se o usuário tiver uma versão do Android.
Permissões para Android 6.0 e acima:
Future<void> _checkPermissionsLocation() async {
DeviceInfoPlugin deviceInfoPlugin = DeviceInfoPlugin();
final androidInfo = await deviceInfoPlugin.androidInfo;
var sdkInt = androidInfo.version.sdkInt;
if(sdkInt>=29) {
//Requisitos do Grouplink:
//O Android precisa apenas da localização enquanto em uso.
//Opcional: mostrar uma justificativa do porquê a permissão é usada no seu app.
var statuses = await Permission.location.request();
if (statuses.isDenied) {
//Opcional: reiterar com uma justificativa do porquê a permissão é usada e necessária no seu app.
statuses = await Permission.location.request();
}
}
}
Para o Android 12, há novas permissões situacionais para bluetooth. Todas as seguintes são necessárias. Permissões para Android 12:
Future<void> _checkPermissionBluetooth() async {
DeviceInfoPlugin deviceInfoPlugin = DeviceInfoPlugin();
final androidInfo = await deviceInfoPlugin.androidInfo;
var sdkInt = androidInfo.version.sdkInt;
if(sdkInt>=31) {
//Opcional: mostrar uma justificativa do porquê a permissão é usada no seu app.
var statuses = await [
Permission.bluetoothScan,
Permission.bluetoothAdvertise,
Permission.bluetoothConnect
].request();
if (statuses[Permission.bluetoothScan]!.isDenied) {
//Opcional: reiterar com uma justificativa do porquê a permissão é usada e necessária no seu app.
statuses = await [
Permission.bluetoothScan,
Permission.bluetoothAdvertise,
Permission.bluetoothConnect
].request();
}
}
}