AYUDA EN LÍNEA
 WINDEVWEBDEV Y WINDEV MOBILE

Este contenido se ha traducido automáticamente.  Haga clic aquí  para ver la versión en inglés.
Ayuda / WLanguage / Funciones WLanguage / Funciones específicas para móviles / Funciones Sensor
  • Condiciones de uso
  • Orientación del dispositivo: definiciones
  • Detener la detección
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReportes y ConsultasCódigo de Usuario (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Código Navegador
WINDEV Mobile
AndroidWidget Android iPhone/iPadIOS WidgetApple WatchMac CatalystUniversal Windows 10 App
Otros
Procedimientos almacenados
SensorDetectChangeOrientation( Función)
Permite ser notificado cuando la orientación del dispositivo cambia en cualquiera de sus 3 ejes.
Ejemplo
// Detect the changes of orientation on several axes
SensorDetectChangeOrientation(DetectOrientation, snrAzimuth + snrPitch + snrRoll)
// Procedure called by the SensorDetectChangeOrientation function
PROCEDURE DetectOrientation(nAzimuth is int, nPitch is int, nRoll is int)
IF nAzimuth = 0 OR nAzimuth = 360 THEN
ToastDisplay("The device is oriented to the North.")
END
 
// Stop detecting the changes of orientation:
SensorEnd()
Sintaxis
<Result> = SensorDetectChangeOrientation(<WLanguage procedure> [, <Orientation> [, <Frequency> [, <Threshold>]]])
<Result>: booleano
  • True si se pudo iniciar la detección,
  • False en caso contrario.
<WLanguage procedure>: Nombre de Procedure
Nombre del lenguaje WL Procedure ("callback") llamado cuando el dispositivo cambia de orientación. Este procedimiento tiene el siguiente formato:
PROCEDURE <Procedure name> (<Azimuth>, <Pitch>, <Roll>)
donde:
  • <Azimut> es un número entero correspondiente al ángulo entre la dirección del Norte magnético y la dirección del eje longitudinal (Y) del dispositivo,
  • <El paso> es un número entero correspondiente al ángulo de rotación del dispositivo alrededor del eje horizontal (X).
  • <Roll> es un número entero correspondiente al ángulo de rotación del dispositivo alrededor del eje longitudinal (Y)..
Los parámetros de este Procedure son opcionales. No hay necesidad de pasarle parámetros a este Procedure. De hecho, estos parámetros se rellenan automáticamente durante cada llamada, siempre que el tipo de orientación correspondiente se especifique en <Orientación>.. Por lo demás, estos parámetros son set a 0.
Si el nombre de la Procedure corresponde a una cadena vacía (""), las notificaciones de cambio de orientación correspondientes a <Orientación> no se enviarán más.
<Orientation>: Constante o combinación de constantes de tipo Integer (opcional)
Tipo de cambio de orientación que se debe tener en cuenta:
snrAzimuthNotification cuando la orientación cambia alrededor del eje vertical (Z).
snrPitchNotification cuando la orientación cambia alrededor del eje horizontal (X).
snrRollNotification cuando la orientación cambia alrededor del eje longitudinal (Y).
Por defecto, se enviará un Notification cuando la orientación cambie en cualquiera de los tres ejes (equivalente a snrAzimuth + snrPitch + snrRoll).
<Frequency>: Constante opcional de tipo Integer
Frecuencia con arreglo a la cual deben enviarse las notificaciones de cambios de orientación:
snrFrequencyGameFrecuencia Notification necesaria cuando se utiliza SensorDetectChangeOrientation en un juego.
snrFrequencyNormal
(Valor predeterminado)
Frecuencia estándar de Notification.
snrFrequencyQuickFrecuencia rápida de Notification.
iPhone/iPad Este parámetro no se tiene en cuenta. La frecuencia es la misma, independientemente de la constante especificada.
<Threshold>: Entero opcional
Umbral de tolerancia al cambio (en grados). Las notificaciones se enviarán para los cambios de orientación superiores a este umbral..
No se fijará ningún umbral si no se especifica este parámetro.: las notificaciones se enviarán por cada cambio de orientación (equivalente a un umbral set a 0).
Observaciones

Condiciones de uso

  • Esta función no se puede utilizar en el emulador o en el simulador.. En ambos casos, el resultado de la función siempre corresponderá a False.
  • La detección de cambios de orientación utiliza el sensor del acelerómetro que se encuentra en el dispositivo. No se detectarán cambios de orientación si este sensor no se encuentra en el dispositivo.. La sensibilidad de la detección depende de la calidad del sensor del dispositivo.
  • Solo se tiene en cuenta la última llamada a la función SensorDetectChangeOrientation. De hecho, sólo puede haber una detección a la vez.. Para realizar una detección según varios ejes, debe combinar las orientaciones.

Orientación del dispositivo: definiciones

El cambio de orientación se puede especificar según las tres dimensiones siguientes:
  • azimut: Dirección del dispositivo con respecto al Norte magnético alrededor del eje vertical (Z). Esta dirección se expresa en grados (de 0 a 360 grados). En este caso, 0 ó 360 corresponde al Norte, 90 al Este, 180 al Sur y 270 al Oeste.
  • alquitrán: Rotación del dispositivo alrededor del eje horizontal (X). Esta rotación se expresa en grados (de -180 a 180). Su valor es set a 0 grados cuando el dispositivo se acuesta en posición horizontal con la pantalla apuntando al techo, -90 grados cuando el dispositivo se queda quieto con la parte superior del dispositivo apuntando al techo, 90 grados cuando el dispositivo se queda quieto con la parte superior del dispositivo apuntando al suelo y -180/180 grados cuando el dispositivo se acuesta en posición horizontal con la pantalla apuntando al suelo.
  • panecillo: Rotación del dispositivo alrededor del eje longitudinal (Y). Esta rotación se expresa en grados (de -90 a 90). Su valor es set a 0 grados cuando el dispositivo está acostado en posición plana con la pantalla apuntando al techo, -90 grados cuando la pantalla está orientada a la izquierda y 90 grados cuando está orientada a la derecha.
Origen de la orientación
Sistema de coordenadas (teniendo en cuenta que el dispositivo se encuentra en posición horizontal, la pantalla dirigida hacia el techo):
  • El origen se encuentra en la Corner inferior izquierda de la pantalla.
  • El eje X representa el eje horizontal y apunta a la derecha de la pantalla.
  • El eje Y representa el eje longitudinal y apunta a la parte superior de la pantalla.
  • El eje Z representa el eje vertical y apunta fuera del frente de la pantalla.

Detener la detección

Le aconsejamos que deje de detectar los cambios de orientación cuando ya no sea necesario para ahorrar la batería del dispositivo.. Para ello, <WLanguage Procedure> debe corresponder a una cadena vacía ("").
SensorEnd se utiliza para detener todas las detecciones actuales.
Componente: WDJS.DLL
Ver también
Versión mínima requerida
  • Versión 16
Esta página también está disponible para…
Comentarios
Haga clic en [Agregar] para publicar un comentario

Última modificación: 27/05/2022

Señalar un error o enviar una sugerencia | Ayuda local