Location Manager Error : Operation could not be completed(KCLErrorDomain error 0)
Por que esse erro ocorre?
Location Manager Error : Operation could not be completed(KCLErrorDomain error 0)
Por que esse erro ocorre?
Respostas:
Este erro ocorre se você Scheme/Edit Scheme/Options/Allow Location Simulation
marcou, mas não tem um local padrão definido. Tenho certeza de que existem outras causas também.
ATUALIZAR
AGRADECIMENTOS A Ben Marten. Você pode torná-lo permanente usando estas etapas no XCode:
- Produto> Esquema> Editar Esquema
- Clique em Executar .app
- Guia de opções
- Já verificado Core Location> selecione sua localização
- pressione OK
Além disso, mesmo que você não esteja conectado a wi-fi, você pode definir um local no simulador através dos itens do menu superior Debug>Location
e para torná-lo permanente siga os passos acima
Eu só tive esse problema. Levei um tempo para encontrar a solução, que está apenas vagamente relacionada à resposta do autor da postagem anterior.
O Airport (WiFi) deve estar ligado para que o CoreLocation no simulador do iPhone / iPad funcione. Eu estava conectado via Ethernet, então CL não fez nada no Simulador. Ligue o Airport nas configurações de rede e tente novamente. Você pode alterar a ordem de suas interfaces de rede arrastando Airport abaixo da Ethernet se quiser continuar favorecendo sua conexão com fio em vez de sem fio
Dos documentos da API:
CLError
Códigos de erro retornados pelo objeto gerenciador de localização.
typedef enum {kCLErrorLocationUnknown = 0, kCLErrorDenied, kCLErrorNetwork, kCLErrorHeadingFailure} CLError;
Constantes
kCLErrorLocationUnknown O gerenciador de local não foi capaz de obter um valor de local agora. Disponível no iPhone OS 2.0 e posterior. Declarado em CLError.h.
kCLErrorDenied O acesso ao serviço de localização foi negado pelo usuário. Disponível no iPhone OS 2.0 e posterior. Declarado em CLError.h.
kCLErrorNetwork A rede não estava disponível ou ocorreu um erro de rede. Disponível no iPhone OS 3.0b e posterior. Declarado em CLError.h.
kCLErrorHeadingFailure O título não pôde ser determinado. Disponível no iPhone OS 3.0 e posterior. Declarado em CLError.h.
Portanto, isso significa que o local não pôde ser determinado.
Eu diria que a causa mais provável é que o gerenciador de localização está usando WiFi para triangular a localização e o banco de dados não cobre as redes locais. Isso aparentemente pode ser corrigido pelo usuário se ele for aqui .
No entanto, como observei, também vi isso ocasionalmente como um erro temporário ao executar um programa baseado em localização em um local onde o material de localização WiFi normalmente funciona.
Por último, acho que é possível ver esse erro se houver algum tipo de falha de hardware.
1) verifique se você realmente tem uma conexão WiFi e 3G válida
se você fizer então
2) ir para as configurações e redefinir seus serviços de localização 3) redefinir suas configurações de rede
Este erro é gerado quando o Gerenciador de locais não consegue obter informações de localização imediatamente. Descobri que esse erro estava ocorrendo quando o método startUpdatingLocation foi chamado. Para mim, isso estava acontecendo no iPod, mas não no iPhone. Isso faz sentido, uma vez que o iPhone tem mais maneiras (como rede celular) de obter informações de localização e é capaz de obter uma estimativa rápida da localização, enquanto o iPod leva mais tempo, o que fez com que esse erro fosse gerado no iPod.
Visto que, quando esse erro é gerado, o método locationManager: didFailWithError: delegate é chamado, pode-se tratar esse caso específico em uma instrução condicional combinando "[domínio do erro]" e "[código do erro]" do objeto de erro passado para este método.
A razão exata do que descobri é que há um conflito ocorrendo na simulação de localização tanto no simulador ios "Configurações de depuração" e nas configurações de xcode "Esquemas de edição". Certifique-se de definir a localização do usuário padrão em qualquer um destes e marque o outro para Nenhum resolveu o problema, espero que isso ajude com certeza. InXcode:
No simulador de iphone / ipad:
Você pode adicionar sua própria lista de locais ao Xcode para testar seus aplicativos.
No Xcode, selecione o menu Depurar / Simular localização e você terá:
a. "Don't Simulate Location"
b. 12 example locations
c. "Add GPX File to Project..."
Selecione "Adicionar arquivo GPX ao projeto ..." e selecione o arquivo GPX que você criou.
Graças a este artigo ( https://possiblemobile.com/2013/04/using-xcode-to-test-location-services/ ), recebi uma dica para olhar os dados em meu arquivo GPX personalizado e aí encontrei o problema.
Alguns arquivos GPX que você pode obter de diferentes origens podem ter os seguintes elementos indicando as diferentes coordenadas no caminho especificado. Isso não funcionará com a Simulação de Localização do Xcode.
<gpx>
...
<trkpt lat="" lon="">
<ele></ele>
</trkpt>
...
</gpx>
O que você deve fazer é localizar todas as ocorrências do elemento "trkpt" e substituí-lo por "wpt" em seu editor de texto / xml favorito. O resultado final deve ser o seguinte:
<gpx>
<wpt lat="" lon="">
<ele></ele>
</wpt>
...
</gpx>
Espero que isto ajude! Certamente me ajudou.
Este erro ocorre enquanto você executa seu programa, mas você simula a localização depois de executar o programa.
Eu recebo um método: saia do simulador e reinicie-o, em seguida, defina a localização do seu simulador antes de executar o programa, e funciona para mim.
Espero que isto ajude! Certamente me ajudou. obrigado...
tudo isso não funcionou para mim .. o que funcionou para mim é: - definir a localização do simulador para none
seguida, alterá-lo de volta para o custom
local enquanto o aplicativo está em execução.
Se você está obtendo isso no dispositivo, é provável que você não tenha solicitado ou o usuário tenha negado a permissão para coletar o local.