achas que algo não funciona na aplicação?
Algumas viagens não estão a ser detectadas?
Aqui estão alguns truques e dicas que ajudam o SenseMyCity a funcionar melhor (ou qualquer outra aplicação que necessita de recolher dados em segundo plano).
Permissões obrigatórias (e pedidas):
- Localização. É uma aplicação de recolha de dados de localização…
- Contas (no Android <8.0). A aplicação requer essa permissão para obter o e-mail da conta Google registada do smartphone. Sem ela, a plataforma não pode realizar a autenticação de utilizador, não providenciando acesso aos seus dados recolhidos e, portanto, não pode recolher nenhum dado. Não se preocupe, nós não armazenamos o e-mail, apenas uma versão com hash.
O Android 8.0+ permite-nos solicitar um e-mail válido na primeira execução sem esta permissão.
Configurações necessárias do Android:
- Os serviços de localização devem estar activados. Não dá para evitar isto.
- O Google Services deve estar instalado. A aplicação deve pedir para instalá-lo/actualizá-lo, caso seja necessário. Estes fornecem serviços de localização, de reconhecimento de actividades e de visualização do mapa.
Configurações recomendadas:
- Serviços de localização configurados para Alta Precisão. O detector de movimento apenas solicita localizações passivos ou com baixo consumo de energia, mas depois do movimento ser detectado a nossa aplicação solicita novas localizações com alta precisão e frequência, até o utilizador parar de se mover.
- Dados móveis activos. A aplicação por definição apenas transmite dados por wifi. Os Google Services, no entanto, podem utilizar ligações móveis esporadicamente para obter uma localização com baixo custo de bateria (utilizando a lista de redes wifi e torres celulares próximas). A nossa aplicação aproveita essas actualizações de localização para detectar o movimento do usuário.
- Histórico de localização do Google. Nas “Contas” -> “Google” -> “Privacidade” -> Menu “Controlo de Actividade”. Essa opção permite que o Google recolha esporadicamente a tua localização, activa a Timeline do Google Maps, e envia-te e-mails mensais assustadores, listando os lugares que visitaste. Esta funcionalidade com que uma nova localização com baixo custo de bateria seja obtida a cada 60s, fornecendo-a também a qualquer aplicação que necessite, diminuindo o consumo de energia. Alternativamente:
- Configuração do SenseMyCity: “Aumentar a sensibilidade do Det. de Movimento”. Sem actualizações de localização fornecidas pelo “Histórico de localização do Google”, a aplicação conta com o Reconhecimento de actividades do Google para detectar movimentos, que tem uma precisão que varia muito entre modelos de smartphones e do software. Em alternativa, esta configuração informa a nossa aplicação para fazer um pedido de localização com baixo custo de bateria a cada 60s, o que requer uma conexão activa de Internet, mas melhora muito o detector de movimento.
Alguns problemas conhecidos:
Alguns fabricantes de smartphones usam técnicas agressivas de poupança de bateria, que podem afectar os serviços em segundo plano.
Alguns fabricantes utilizam definições de segurança de rede que não segue a documentação do Android e bloqueiam ligações UDP/TCP.
Muitas sugestões podem ser vistas aqui:
https://sleep.urbandroid.org/documentation/faq/alarms-sleep-tracking-dont-work/
Ficam aqui algumas sugestões para corrigir os problemas nos smartphones mais comuns:
serviços de segundo plano restritos:
Esse recurso impede que os aplicativos sejam executados após a tela do smartphone ser desativada.
Xiaomi: http://nine-faq.9folders.com/articles/8772-how-to-manage-autostart-service-on-the-xiaomi-devices
Asus: https://www.asus.com/support/FAQ/1013752/
Restrições nas ligações de rede:
Alguns fabricantes de smartphones utilizam versões do Android “diferentes”, que em algumas situações podem prevenir as aplicações de criar ligações de rede.
Se respondeste a alguns “questionários de modo de transporte” nos dias anteriores, e mesmo assim ainda não vês os gráficos no ecrã principal, provavelmente tens uma versão destas.
Para confirmar, liga-te a uma rede wifi e vai a SenseMyFEUP -> Configurações -> Relatório da DB , e vê se existem sessões armazenadas localmente por exportar.
Se session > 0 , clica em SenseMyFEUP -> Configurações -> Forçar uma exportação.
Após um minuto volta a SenseMyFEUP -> Configurações -> Relatório da DB.
Se session > 0 , tens uma dessas versões…
Para solucionar, possivelmente terás de desligar a opção Exportar apenas por Wifi, e força novamente uma exportação.
Poderás ter de desligar da rede wifi e exportar utilizando uma rede de dados móveis.
Nota: O SenseMyFEUP envia cerca de 1MB de dados por cada hora de viagem recolhida.
Optimização da bateria:
A nossa aplicação segue as directrizes da Google e, portanto, deve ser compatível com as técnicas padrão de poupança de bateria, como o Doze.
Mas se continuares com problemas ou com viagens não detectadas depois de seguir as recomendações desta página, dá uma olhadela nestas sugestões para desactivar a optimização da bateria na nossa aplicação:
http://nine-faq.9folders.com/categories/2758-troubleshooting
Entra em contacto connosco:
Se mesmo assim a aplicação não detectar muitas viagens, por favor:
- Vai ao menu de configurações da aplicação;
- Abre o Diagnose, aguarda 10 segundos para que alguns valores sejam preenchidos;
- Tira um Screenshot;
- Envia-nos, juntamente com uma descrição.
- Muito obrigado!