Comando de localização (nodes)
Resumo
location.geté um comando de node (vianode.invoke).- Desabilitado por padrão.
- As configurações do app Android usam um seletor: Desativado / Em uso.
- Toggle separado: Localização precisa.
Por que um seletor (e não apenas um switch)
As permissões do SO têm vários níveis. Podemos expor um seletor no app, mas o SO ainda decide a permissão real concedida.- iOS/macOS pode expor Em uso ou Sempre em prompts/configurações do sistema.
- O app Android atualmente oferece suporte apenas a localização em foreground.
- A localização precisa é uma permissão separada (iOS 14+ “Precise”, Android “fine” vs “coarse”).
Modelo de configurações
Por dispositivo node:location.enabledMode:off | whileUsinglocation.preciseEnabled: bool
- Selecionar
whileUsingsolicita permissão de foreground. - Se o SO negar o nível solicitado, reverta para o nível mais alto concedido e mostre o status.
Mapeamento de permissões (node.permissions)
Opcional. O node macOS informa location pelo mapa de permissões; iOS/Android podem omiti-lo.
Comando: location.get
Chamado via node.invoke.
Parâmetros (sugeridos):
LOCATION_DISABLED: o seletor está desativado.LOCATION_PERMISSION_REQUIRED: falta a permissão para o modo solicitado.LOCATION_BACKGROUND_UNAVAILABLE: o app está em segundo plano, mas apenas Em uso é permitido.LOCATION_TIMEOUT: nenhuma localização obtida a tempo.LOCATION_UNAVAILABLE: falha do sistema / nenhum provedor.
Comportamento em segundo plano
- O app Android nega
location.getquando está em segundo plano. - Mantenha o OpenClaw aberto ao solicitar localização no Android.
- Outras plataformas de node podem ser diferentes.
Integração com modelo/ferramentas
- Superfície de ferramenta: a ferramenta
nodesadiciona a açãolocation_get(node obrigatório). - CLI:
openclaw nodes location get --node <id>. - Diretrizes para agentes: chame apenas quando o usuário tiver habilitado a localização e entender o escopo.
Texto de UX (sugerido)
- Desativado: “O compartilhamento de localização está desativado.”
- Em uso: “Somente quando o OpenClaw estiver aberto.”
- Precisa: “Usar localização GPS precisa. Desative para compartilhar localização aproximada.”