संक्षेप में
location.getएक नोड कमांड है (node.invokeके ज़रिए)।- डिफ़ॉल्ट रूप से बंद।
- Android ऐप सेटिंग्स एक चयनकर्ता का उपयोग करती हैं: बंद / उपयोग के दौरान।
- अलग टॉगल: सटीक स्थान।
चयनकर्ता क्यों (सिर्फ स्विच नहीं)
OS अनुमतियाँ बहु-स्तरीय होती हैं। हम ऐप में चयनकर्ता दिखा सकते हैं, लेकिन वास्तविक अनुमति अब भी OS तय करता है।- iOS/macOS सिस्टम prompts/Settings में उपयोग के दौरान या हमेशा दिखा सकते हैं।
- Android ऐप फ़िलहाल केवल foreground location का समर्थन करता है।
- सटीक स्थान एक अलग अनुमति है (iOS 14+ “Precise”, Android “fine” बनाम “coarse”)।
सेटिंग्स मॉडल
प्रति नोड डिवाइस:location.enabledMode:off | whileUsinglocation.preciseEnabled: bool
whileUsingचुनने पर foreground permission का अनुरोध होता है।- यदि OS अनुरोधित स्तर अस्वीकार करता है, तो सबसे ऊंचे स्वीकृत स्तर पर वापस जाएँ और स्थिति दिखाएँ।
अनुमतियों की मैपिंग (node.permissions)
वैकल्पिक। macOS नोड permissions map के ज़रिएlocation रिपोर्ट करता है; iOS/Android इसे छोड़ सकते हैं।
कमांड: location.get
node.invoke के ज़रिए कॉल किया जाता है।
पैरामीटर (सुझाए गए):
LOCATION_DISABLED: चयनकर्ता बंद है।LOCATION_PERMISSION_REQUIRED: अनुरोधित मोड के लिए अनुमति नहीं है।LOCATION_BACKGROUND_UNAVAILABLE: ऐप पृष्ठभूमि में है, लेकिन केवल उपयोग के दौरान अनुमति है।LOCATION_TIMEOUT: समय पर कोई fix नहीं मिला।LOCATION_UNAVAILABLE: सिस्टम विफलता / कोई provider नहीं।
पृष्ठभूमि व्यवहार
- Android ऐप पृष्ठभूमि में होने पर
location.getको अस्वीकार करता है। - Android पर स्थान का अनुरोध करते समय OpenClaw खुला रखें।
- अन्य नोड प्लेटफ़ॉर्म अलग हो सकते हैं।
मॉडल/टूलिंग एकीकरण
- टूल सतह:
nodesटूलlocation_getaction जोड़ता है (नोड आवश्यक)। - CLI:
openclaw nodes location get --node <id>। - एजेंट दिशानिर्देश: केवल तब कॉल करें जब उपयोगकर्ता ने स्थान सक्षम किया हो और scope समझता हो।
UX कॉपी (सुझाई गई)
- बंद: “स्थान साझा करना अक्षम है।”
- उपयोग के दौरान: “केवल जब OpenClaw खुला हो।”
- सटीक: “सटीक GPS स्थान का उपयोग करें। अनुमानित स्थान साझा करने के लिए टॉगल बंद करें।“