Las aplicaciones de cacao que utilizan la API de NSAccessibility requieren que se active "habilitar el acceso para dispositivos de asistencia" en el panel de preferencias de Universal Access. He visto muchas aplicaciones mostrar una advertencia si esto está deshabilitado cuando se ejecutan. ¿Cómo compruebo programáticamente si esto está habilitado para que pueda mostrar una advertencia en mi aplicación?Determine de forma programática si la opción "habilitar el acceso para dispositivos de asistencia" está marcada en la aplicación Cocoa
Respuesta
Creo que estás buscando AXAPIEnabled()
.
extern Boolean AXAPIEnabled();
Citando the docs:
Devuelve si la API de accesibilidad está activada.
Devuelve TRUE si la API de accesibilidad está habilitada actualmente; de lo contrario, FALSE.
aplicaciones Assistive no funcionarán si la API de accesibilidad no es habilitado o si el proceso de llamada no es un cliente de confianza accesibilidad . Los usuarios pueden habilitar la API de accesibilidad marcando "Habilitar el acceso para dispositivos de asistencia" en Preferencias de acceso universal.
También debe leer la discusión [AXIsProcessTrusted/AXMakeProcessTrusted] (http://www.cocoabuilder.com/archive/cocoa/135734-axisprocesstrusted-axmakeprocesstrusted.html). Aprenderá que también debe verificar 'AXIsProcessTrusted()'. – 0xced
'AXAPIEnabled()' ha quedado en desuso en OS X 10.9 Mavericks – pkamb
Sí, para esta funcionalidad en 10.9, vea [esta pregunta] (http://stackoverflow.com/questions/17693408/enable-access-for-assistive-devices -programmáticamente-en-10-9) y su respuesta mejor calificada. – zpasternack
En OS X 10.9 Mavericks, AXAPIEnabled()
has been deprecated.
AXIsProcessTrustedWithOptions
se puede utilizar en su lugar:
NSDictionary *options = @{(id)kAXTrustedCheckOptionPrompt: @YES};
BOOL accessibilityEnabled = AXIsProcessTrustedWithOptions((CFDictionaryRef)options);
Si pasa en YES
para kAXTrustedCheckOptionPrompt
, el sistema mostrará al usuario un poco de diálogo útil con un enlace a Preferencias del sistema:
"YourApp .app desea controlar esta computadora usando las funciones de accesibilidad ".
- 1. AppleScript - Error de eventos del sistema: el acceso para dispositivos de asistencia está deshabilitado
- 2. Habilite el acceso para el dispositivo de asistencia programáticamente
- 3. Compruebe de forma programática si el monitor está apagado
- 4. Determine si la aplicación actual está activada (tiene foco)
- 5. ¿La mejor manera de saber si la aplicación está inactiva en cocoa mac OSX?
- 6. Determine si CGPoint está dentro del área de la imagen
- 7. Determine si la página actual está utilizando SSL en Rails
- 8. Desactivar/habilitar una opción del menú de la aplicación
- 9. jQuery si casilla de verificación está marcada
- 10. ¿Activar/desactivar el botón de enviar si la casilla de verificación está marcada/desmarcada?
- 11. JQuery La verificación de la casilla de verificación está marcada
- 12. Determine si la aplicación se ejecuta en azul o no
- 13. ¿Está marcada la clase de excepción java?
- 14. C# VS2010 Determine en la aplicación si se depuró
- 15. ¿Determinando de forma programática la causa de IOException?
- 16. permitir a los campos de entrada si los botones de opción está marcada con jQuery
- 17. Compruebe si la casilla está marcada o no - ASP.NET
- 18. Determine si la ubicación de la memoria está en la memoria caché de la CPU
- 19. compruebe si la 1ª opción está seleccionada
- 20. Marque esta casilla si está marcada
- 21. La opción desplegable Modificador de acceso de Visual Studio está deshabilitada para el archivo de recursos
- 22. Determine si la aplicación es WinForms o WebForms
- 23. Lea la imagen y determine si está corrupta C#
- 24. Iphone: cómo habilitar el acceso de la aplicación a los medios en el dispositivo? - ALAssetsLibraryErrorDomain Code = -3312 "Acceso denegado global"
- 25. ¿Hay alguna forma de comprobar si la opción "Instalar desde origen desconocido" está habilitada en Android?
- 26. ¿Cómo verificar si la casilla de verificación está marcada en Delphi TTaskDialog?
- 27. Android: dónde encontrar la opción "Fuentes desconocidas" en muchos dispositivos?
- 28. ¿Hay alguna manera de saber si otra aplicación cambió la resolución de la pantalla en Cocoa?
- 29. Determine el directorio de instalación de la aplicación de terceros
- 30. cómo habilitar la opción de llaves coincidentes en VS2010
vez que son capaces de detectar que el ajuste se ha encendido, ¿cómo empezar a usar el acceso de asistencia? ¿Se requiere un reinicio de la aplicación? – cksubs
Al hacerle esta pregunta, parece que necesita reiniciar: http://stackoverflow.com/questions/9132845/how-do-i-give-my-app-assistive-access-privileges-once-enable-access- for-assis – cksubs