O framework do Android permite acessar medições GNSS brutas em vários dispositivos Android.
Este artigo lista os dispositivos Android compatíveis com medições GNSS brutas, assim como ferramentas para registrar e analisar dados GNSS. Você pode encontrar as ferramentas no repositório GPS Measurement Tools no GitHub, que inclui o APK GNSS Logger, o app GNSS Analysis para Linux, Windows e macOS e o Manual do usuário e de instalação (links em inglês).
Fabricantes de equipamento original (OEMs), desenvolvedores e pesquisadores podem usar as ferramentas desta página para testar novos designs de smartphone, validar recursos, desenvolver novos algoritmos, avaliar melhorias na implementação do sistema GNSS e criar apps de valor agregado.
Exemplo de código de cliente SUPL
O Suplclient (em inglês) é uma amostra de código que acessa supl.google.com para conseguir efemérides em tempo real. A classe SuplTester
mostra um exemplo de como usar o SUPL Client Project. O SuplTester
configura as especificações de conexão TCP do SUPL e, em uma determinada latitude e longitude, envia uma solicitação SUPPL LPP e imprime a resposta do servidor SUPL.
Dispositivos Android compatíveis com medições GNSS brutas
Antes de acessar qualquer saída bruta de GNSS, é preciso saber se o dispositivo é compatível com a coleta desses dados. A maioria dos dispositivos fabricados a partir de 2016 e vendidos com o Android 7.0 ou versões posteriores fornece dados brutos de GNSS.
Dependendo do dispositivo, as medições GNSS brutas podem incluir todos ou alguns dos seguintes dados:
- Pseudodistância e taxa de pseudodistância.
- Mensagens de navegação.
- Delta de distância acumulado (ADR, na sigla em inglês) ou operadora.
- Relógio de hardware (HW).
A tabela abaixo lista os dispositivos compatíveis com as medições GNSS brutas e os dados que elas disponibilizam. Esta não é uma lista completa. Entre em contato com o fabricante para saber se um dispositivo específico é compatível com medições GNSS brutas.
Modelo | Versão do Android | CAG | Mensagens de navegação | ADR (fase da operadora) | L5 | Sistemas globais |
---|---|---|---|---|---|---|
Xiaomi Mi 9 | 9.0 | sim | não | não | sim | GPS GLOGALBDSQZS |
Samsung Galaxy Note 10+ | 9.0 | sim | não | não | sim | GPS GLOGAL |
Samsung Galaxy Note 10 | 9.0 | sim | não | não | sim | GPS GLOGAL |
Samsung Galaxy S10e | 9.0 | sim | não | não | não | GPS GLOGAL |
Samsung Galaxy S10+ | 9.0 | sim | não | não | não | GPS GLO |
Samsung Galaxy S10 | 9.0 | sim | não | não | não | GPS GLOGAL |
Huawei P30 Pro | 9.0 | não | não | sim | sim | GPS GLOGALBDS |
LG G8 ThinQ | 9.0 | sim | não | não | não | GPS GLOGAL |
One Plus 7 Pro | 9.0 | sim | não | não | sim | GPS GLOGAL |
One Plus 7 | 9.0 | sim | não | não | sim | GPS GLOGAL |
Huawei Mate 20 X | 9.0 | não | sim | sim | sim | GPS GLOGALQZS |
Huawei Mate 20 RS (Porsche Design) | 9.0 | não | não | sim | sim | GPS GLOGALBDS |
Huawei Mate 20 Pro | 9.0 | não | não | sim | sim | GPS GLOGALBDS |
Huawei Mate 20 | 9.0 | não | não | sim | sim | GPS GLOGALBDS |
Huawei Mate RS (Porsche Design) | 8.1 | não | sim | sim | não | GPS GLO GAL |
Pixel 3 XL | 9.0 | sim | não | não | não | GPS GLOGALBDS |
Pixel 3 | 9.0 | sim | não | não | não | GPS GLOGALBDS |
Vivo X21 | 9.0 | não | não | não | não | GPS GLOBDS |
OPPO R15 Pro | 9.0 | não | não | não | não | GPS GLOGALBDS |
Xiaomi Mi 8 | 8.1 | não | sim | sim | sim | GPS GLOGALBDSQZS |
LG V40 ThinQ | 8.1 | não | não | não | não | GPS GLOGALQZS |
OnePlust 6T | 9.0 | não | não | não | não | GPS GLOGALQZS |
Samsung Note 9 | 8.1 | não | não | não | não | GPS GLOGAL QZSSBAS |
LG G7 ThinQ | 8.0 | não | não | não | não | GPS GLO |
Xiaomi Mix 2S | 9.0 | não | não | não | não | GPS GLOGALSBAS |
Huawei P20 | 8.1 | não | sim | sim | não | GPS GLOQZS |
Samsung Galaxy S9 (Exynos)1 | 8.0 | não | sim | sim | não | GPS GLOGALQZS |
Samsung Galaxy S9+ | 8.0 | não | não | não | não | GPS GLOGAL |
Sony Xperia XZ2 | 8.0 | não | não | não | não | GPS GLOGALQZS |
OPPO R15 | 9.0 | não | não | não | não | GPS GLOGALBDS |
HTC U11 Plus | 8.0 | não | não | não | não | GPS GLO |
HTC U11 Life | 8.0 | não | não | não | não | GPS GLO |
Huawei Mate 10 | 8.0 | não | sim | sim | não | GPS GLO |
Huawei Mate 10 Pro | 8.0 | não | sim | sim | não | GPS GLOQZS |
Google Pixel 2 XL | 8.0 | sim | não | não | não | GPS GLOGALBDSQZS |
Google Pixel 2 | 8.0 | sim | não | não | não | GPS GLOGALBDSQZS |
Sony Xperia XZ1 | 8.0 | não | não | não | não | GPS GLOGALBDS |
Samsung Note 8 (Exynos) | 7.1 | não | sim | sim | não | GPS GLOGALBDS |
Samsung Note 8 (QCOM) | 7.1 | não | não | não | não | GPS GLOGALBDS |
LG V30 | 7.1.2 | não | não | não | não | GPS GLOGAL |
Moto X4 2017 | 7.1 | não | não | não | não | GPS GLO GAL |
Essential PH-1 | 7.1 | não | não | não | não | GPS GLO |
Moto Z2 | 7.1 | não | não | não | não | GPS GLO |
HTC U11 | 7.1 | não | não | não | não | GPS GLO |
OPPO R11 | 7.1 | não | não | não | não | GPS GLOGALBDS |
Huawei Honor 9 | 7.0 | não | sim | sim | não | GPS GLO |
Samsung S8 (Exynos)2 | 7.0 | não | sim | sim | não | GPS GLOGALBDSQZS |
Samsung S8 (QCOM)3 | 7.0 | não | não | não | não | GPS |
Huawei P10 | 7.0 | não | sim | sim | não | GPS GLOGALBDSQZS |
Huawei P10 Lite | 7.0 | não | não | não | não | GPS |
Huawei Honor 8 | 7.0 | não | sim | sim | não | GPS GLOBDS |
Huawei Mate 9 | 7.0 | não | sim | sim | não | GPS GLOBDS |
Huawei P9 | 7.0 | não | sim | sim | não | GPS GLOBDS |
Google Pixel XL | 7.0 | não | não | não | não | GPS |
Google Pixel | 7.0 | não | não | não | não | GPS |
Nexus 6P4 | 7.0 | não | não | não | não | GPS |
Nexus 5X4 | 7.0 | não | não | não | não | GPS |
Nexus 9 (versão sem rede celular)5 | 7.1 | não | sim | sim | não | GPS GLO |
1 Exynos, dispositivos da EMEA, modelos: G960F ou G965F
(em inglês)
2 Exynos, dispositivos da EMEA, modelos: G950F ou G955F
(em inglês)
3 QCOM, dispositivos dos EUA, modelos: G950U ou G955U
(em inglês)
4 Medições brutas só são fornecidas quando uma posição de GPS está disponível.
5 Não há ciclo de trabalho. Funciona apenas na versão com rede celular do Nexus 9.
Para saber mais sobre os dados disponibilizados por um dispositivo, consulte Sistema Global de Navegação por Satélite (em inglês).
Registrar medições brutas
É possível usar o Android Studio para criar um app que colete medições GNSS brutas e as registre em um arquivo. O projeto Ferramentas de medição de GPS (em inglês) inclui o GNSS Logger, uma amostra de app que ensina a registrar dados relacionados ao local do Android, incluindo medições GNSS brutas.
Faça o download do APK do GNSS Logger (em inglês) para instalar o app de amostra no dispositivo.
Para acessar a saída de GNSS com o app de amostra, seu dispositivo precisa ser compatível com medições GNSS brutas. Para saber mais, consulte Dispositivos Android compatíveis com medições GNSS brutas.
Depois de coletar o registro de GNSS com o GNSS Logger, você pode copiar os arquivos de registros do dispositivo para o computador caso queira fazer análises mais detalhadas. No GNSS Logger, você pode enviar os arquivos para si por e-mail ou salvá-los no Google Drive. Como alternativa, você pode salvar os arquivos usando o app de gerenciamento de arquivos do dispositivo ou usar o Android Debug Bridge (ADB), como explicado em Copiar arquivos de/para um dispositivo.
Para procurar a amostra de código-fonte, consulte a pasta GNSSLogger
no repositório Ferramentas de medição de GPS (links em inglês) no GitHub.
Analisar as medições brutas
O app GNSS Analysis lê as medições brutas de GPS/GNSS coletadas pelo GNSS Logger e as usa para analisar o comportamento do receptor de GNSS, como mostrado na Figura 1.
Você pode fazer o download do app para os sistemas Linux, Windows e macOS ou do Manual do usuário e de instalação (links em inglês).
Figura 1. O GNSS Logger coleta as medições que podem ser consumidas pelo GNSS Analysis.
O app GNSS Analysis foi criado no MATLAB (em inglês), mas não é preciso ter o MATLAB para executá-lo. O app é compilado em um executável que instala uma cópia do MATLAB Runtime.
Painel de controle do GNSS Analysis
O painel de controle do GNSS Analysis, mostrado na Figura 2, permite gerenciar recursos do app, como:
- Selecionar quais satélites são exibidos.
- Controlar a posição de referência, a velocidade e o tempo (PVT) usados para calcular erros de medição.
- Gerar relatórios de análise.
- Definir uma janela nos dados entre os horários de início e término.
)
Figura 2. Painel de controle do GNSS Analysis.
Gráficos interativos do GNSS Analysis
O app GNSS Analysis oferece gráficos interativos organizados nas colunas "radio frequency (RF)", "clocks" e "measurements", como mostrado na Figura 3.
)
Figura 3. App GNSS Analysis exibindo gráficos interativos.
A coluna "RF" mostra os seguintes dados:
- Para cada constelação, os quatro satélites com os sinais mais fortes.
- Para cada satélite, o gráfico de tempo da taxa de densidade operadora-ruído (C/No).
- Skyplot com as posições dos satélites.
A coluna "Clock" mostra os seguintes dados:
- Pseudodistâncias.
A frequência de deslocamento do relógio do receptor, que é calculada por meio de uma das seguintes posições de referência:
- Posição média calculada automaticamente
- Latitude, longitude e altitude inseridas pelo usuário
- Arquivo da Associação Nacional de Eletrônicos Marinhos dos Estados Unidos (NMEA, na sigla em inglês) com PVT de referência de verdade.
O deslocamento do relógio em espera que mede o tempo em que o receptor redefine o ciclo de trabalho do oscilador principal.
A coluna "Measurements" mostra os seguintes dados:
- Os resultados da posição de mínimos quadrados ponderados, derivados das pseudodistâncias brutas. A ponderação é feita por meio da incerteza informada de cada medição, que faz parte da especificação da API de medição bruta.
- Os erros de cada pseudodistância para cada medição.
Os erros de cada taxa de pseudodistância para cada medição.
Relatório de teste do GNSS Analysis
O GNSS Analysis pode gerar um relatório de teste, como mostrado na Figura 4, que avalia a implementação da API, o sinal recebido, o comportamento do relógio e a precisão da medição. Para cada caso, o app informa se o receptor passou ou falhou no teste com base no desempenho medido em relação aos comparativos conhecidos. O relatório de teste é útil para fabricantes de dispositivos, que podem usá-lo ao iterar por meio da criação e da implementação de novos dispositivos. Para gerar o relatório de teste, clique em Make Report.
Figura 4. Relatório de teste do GNSS Analysis.
A guia Compare mostra uma comparação lado a lado (veja a Figura 5) de C/No de vários arquivos de registro GNSS, o que é útil ao comparar o desempenho de RF de vários dispositivos.
Figura 5. Comparação lado a lado dos dados C/No de vários arquivos de registro.
Tem interesse no código-fonte? O projeto Ferramenta de Medição de GPS (em inglês) oferece um exemplo de código aberto do MATLAB que você pode usar para fazer as seguintes ações com sinais de constelação de GPS:
- Ler dados coletados com a amostra de app GNS Logger.
- Calcular e visualizar pseudodistâncias.
- Calcular a posição e a velocidade dos mínimos quadrados ponderados.
- Visualizar e analisar a fase da operadora.
Notas da versão do app GNS Analysis v3.0.3.0
A versão 3.0.3.0 do app GNSS Analysis inclui as seguintes atualizações:
- Adição de gráficos:
- Posição do filtro de Kalman do PVT dos mínimos quadrados ponderados
- Posição relativa dos mínimos quadrados ponderados do ADR (fase da operadora)
- Residual de diferença única do ADR (fase da operadora)
- Adição de posições de atualização para gerar gráficos de posicionamento com base nos satélites selecionados.
- Adição do controle de máscara de elevação.
- Otimização do download de arquivos de efemérides, usando descompactação nativa dentro do ambiente de execução do Matlab para todos os arquivos BKG, *.gz e ZIP.
- Adição da posição do dispositivo como uma opção para PVT de referência.
- Adição do recurso
CustomDataFilter.m
, filtrando qualquer um dos valores do cabeçalho # Raw.
Enviar feedback
Queremos melhorar a compatibilidade do GNSS no Android. Informe problemas com a compatibilidade do GNSS no Android por meio do rastreador de problemas de GNSS (em inglês). Verifique se seu problema já foi abordado na seção Perguntas frequentes (em inglês) antes de postá-lo.
Se você já usou as ferramentas do GNSS Analysis, comente sobre sua experiência respondendo a uma breve pesquisa. Se você tiver outras dúvidas ou alguma solicitação de ajuda, consulte Recursos de suporte para desenvolvedores.
Você pode encontrar respostas para as dúvidas mais comuns nas Perguntas frequentes das ferramentas do GNSS Analysis (em inglês).