Pular para o conteúdo principal

Permissões

O módulo coleta dados do dispositivo do usuário conforme as permissões que estão disponíveis no momento da coleta: conforme mais permissões seu aplicativo requerir e o usuário disponibilizar, mais informações são coletadas do dispositivo do usuário.

Atenção

A permissão de INTERNET é obrigatória para que o SDK consiga enviar as informações aos servidores da QI Tech.

Importante

Nosso módulo não solicita as permissões descritas. Portanto, para garantir um scan de dispositivo mais completo, recomendamos a coleta dessas permissões antes de executar a chamada de startDeviceScan.

Android

Para a plataforma Android, as seguintes permissões são utilizadas caso estejam disponíveis:

PermissãoFunçãoObrigatória
INTERNETObrigatória, para envio das informações aos servidores da QI Tech.Sim.
BLUETOOTHCaptura de informações do hardware de Bluetooth.Não.
BLUETOOTH_CONNECTCaptura de informações de conexão Bluetooth. Necessária a partir do Android 12 (API 31).Não.
READ_CONTACTSLeitura da agenda de contatos.Não.
ACCESS_COARSE_LOCATIONAcesso a informações de rede (Antena, operadora...) e à localização por este meio (Menos preciso).Não.
ACCESS_FINE_LOCATIONAcesso à localização por meio de GPS (Mais preciso).Não.
READ_PHONE_STATEInformações de Rede, SIM, Imei e outros aspectos de telefonia.Não.
QUERY_ALL_PACKAGESInformações de aplicativos instalados no dispositivo. Necessária para devices Android 11 em diante.Não.
Atenção

A permissão de QUERY_ALL_PACKAGES pode gerar atrito com o Google Play no momento do lançamento do App. Para solucioná-lo é possível descrever o motivo da solicitação da permissão.

Solicitando as permissões

import { Platform, PermissionsAndroid, Permission } from 'react-native';

const permissionsToRequest: Permission[] = [
PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION,
PermissionsAndroid.PERMISSIONS.ACCESS_COARSE_LOCATION,
PermissionsAndroid.PERMISSIONS.READ_PHONE_STATE,
PermissionsAndroid.PERMISSIONS.READ_CONTACTS,
];

// BLUETOOTH_CONNECT só é necessária no Android 12+ (API 31+)
if (Platform.Version >= 31) {
permissionsToRequest.push('android.permission.BLUETOOTH_CONNECT' as Permission);
}

const results = await PermissionsAndroid.requestMultiple(permissionsToRequest);

iOS

Para a plataforma iOS, a seguinte permissão é utilizada caso esteja disponível:

  • location - Captura de dados de geolocalização do device

Arquivo Info.plist

O primeiro passo para disponibilizar permissões para o módulo é configurar a permissão no arquivo Info.plist da aplicação:

<key>NSLocationWhenInUseUsageDescription</key>
<string>Adicionar a mensagem que você deseja que apareça para o usuário quando o iOS solicitar a permissão de acesso à geolocalização</string>
Atenção

Para melhorar a experiência do usuário no momento da solicitação das permissões você deve personalizar a mensagem reproduzida no pop-up de solicitação conforme descrito anteriormente.

Solicitando as permissões

import { request, PERMISSIONS, RESULTS } from 'react-native-permissions';

const result = await request(PERMISSIONS.IOS.LOCATION_WHEN_IN_USE);

if (result === RESULTS.GRANTED) {
// permissão concedida
}

Coleta de informações

Para a lista completa das informações coletadas em cada plataforma, consulte as páginas de coleta dos SDKs nativos: