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.
A permissão de INTERNET é obrigatória para que o SDK consiga enviar as informações aos servidores da QI Tech.
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ão | Função | Obrigatória |
|---|---|---|
| INTERNET | Obrigatória, para envio das informações aos servidores da QI Tech. | Sim. |
| BLUETOOTH | Captura de informações do hardware de Bluetooth. | Não. |
| BLUETOOTH_CONNECT | Captura de informações de conexão Bluetooth. Necessária a partir do Android 12 (API 31). | Não. |
| READ_CONTACTS | Leitura da agenda de contatos. | Não. |
| ACCESS_COARSE_LOCATION | Acesso a informações de rede (Antena, operadora...) e à localização por este meio (Menos preciso). | Não. |
| ACCESS_FINE_LOCATION | Acesso à localização por meio de GPS (Mais preciso). | Não. |
| READ_PHONE_STATE | Informações de Rede, SIM, Imei e outros aspectos de telefonia. | Não. |
| QUERY_ALL_PACKAGES | Informações de aplicativos instalados no dispositivo. Necessária para devices Android 11 em diante. | Nã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>
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: