2011-08-03 15 views
6

एनओसीएबिलिटी एपीआई का उपयोग करते हुए कोको ऐप्स को "सहायक उपकरणों के लिए एक्सेस सक्षम करने" की आवश्यकता है, जो सार्वभौमिक एक्सेस प्रीफ़ फलक में चेक किए जाने की आवश्यकता है। मैंने देखा है कि कई ऐप्स एक चेतावनी पॉप करते हैं यदि यह चलाए जाने पर अक्षम हो जाता है। प्रोग्राम सक्षम रूप से यह कैसे जांच सकता है कि यह सक्षम है या नहीं, इसलिए मैं अपने ऐप में एक चेतावनी दिखा सकता हूं?प्रोग्रामेटिक रूप से निर्धारित करता है कि कोको ऐप

+0

एक बार जब आप पता लगाने के लिए कि सेटिंग चालू कर दिया गया है में सक्षम हैं, आप कैसे सहायक Access का उपयोग आरंभ किया जाए? क्या एक ऐप पुनरारंभ करना आवश्यक है? – cksubs

+0

उस प्रश्न से पूछा गया, ऐसा लगता है कि आपको पुनरारंभ करने की आवश्यकता है: http://stackoverflow.com/questions/9132845/how-do-i-give-my-app-assistive-access-privileges-once-enable-access- for-assis – cksubs

उत्तर

4

मुझे लगता है कि आप AXAPIEnabled() के लिए देख रहे हैं।

extern Boolean AXAPIEnabled(); 

का हवाला देते हुए the docs:

रिटर्न पहुँच एपीआई सक्षम है या नहीं।

यदि विश्वसनीयता एपीआई वर्तमान में सक्षम है तो अन्यथा सही है, अन्यथा गलत।

एक्सेसिबिलिटी एपीआई सक्षम नहीं है या कॉलिंग प्रक्रिया विश्वसनीय भरोसेमंद क्लाइंट नहीं है, तो सहायक अनुप्रयोग काम नहीं करेंगे। उपयोगकर्ता यूनिवर्सल एक्सेस प्राथमिकताओं में "सहायक डिवाइसों के लिए एक्सेस सक्षम" की जांच करके अभिगम्यता API सक्षम कर सकते हैं।

+0

आपको [AXIsProcessTrusted/AXMakeProcessTrusted] (http://www.cocoabuilder.com/archive/cocoa/135734-axisprocesstrusted-axmakeprocesstrusted.html) चर्चा भी पढ़नी चाहिए। आप सीखेंगे कि आपको 'AXIsProcessTrusted() 'के लिए भी जांच करनी चाहिए। – 0xced

+1

'एक्सएक्सआईएनेबल() 'ओएस एक्स 10.9 मैवरिक्स – pkamb

+1

में बहिष्कृत किया गया है हां, 10.9 में इस कार्यक्षमता के लिए, [यह प्रश्न] देखें (http://stackoverflow.com/questions/17693408/enable-access-for-assistive-devices -प्रोग्रामेटिकली-ऑन -10-9) और इसका सबसे अधिक मूल्यांकन किया गया उत्तर। – zpasternack

11

ओएस एक्स 10.9 मैवरिक्स, AXAPIEnabled()has been deprecated में।

AXIsProcessTrustedWithOptions बजाय प्रयोग किया जा सकता है:

"YourApp:

NSDictionary *options = @{(id)kAXTrustedCheckOptionPrompt: @YES}; 
BOOL accessibilityEnabled = AXIsProcessTrustedWithOptions((CFDictionaryRef)options); 

आप kAXTrustedCheckOptionPrompt के लिए YES में पारित, तो सिस्टम उपयोगकर्ता एक उपयोगी छोटे संवाद सिस्टम प्राथमिकताएं के लिंक के साथ दिखाई देंगे .app अभिगम्यता सुविधाओं का उपयोग करके इस कंप्यूटर को नियंत्रित करना चाहता है। "

enter image description here

संबंधित मुद्दे

 संबंधित मुद्दे