PC SOFT

AYUDA EN LÍNEA
DE WINDEV, WEBDEV Y WINDEV MOBILE

Este contenido proviene de una traducción automática.. Haga clic aquí para ver la versión original en inglés.
  • Usar un servicio de detección de móviles
  • ¿Cómo identificar las etiquetas cercanas?
  • Notas adicionales
  • Versión necesaria
  • Permisos necesarios
  • Características específicas
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReportes y ConsultasCódigo de Usuario (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Código Navegador
WINDEV Mobile
AndroidWidget Android iPhone/iPadApple WatchUniversal Windows 10 AppWindows Mobile
Otros
Procedimientos almacenados
Permite notificar a la aplicación cuando el dispositivo entra o sale de un área correspondiente al radio de emisión de un set de etiquetas de baliza.
Ejemplo
// In a museum, we want to trigger the reading (resp. the stop) of an audio guide
// when the visitor enters into (resp. exits from) a room.
// We associate to each Beacon tag the same UUID corresponding to the museum and
// a Major number corresponding to the room where the tag will be positioned.
// A Beacon tag is placed at each entrance of each museum room.
// The application must call the BeaconDetectBackground function
// with an array of BeaconGroup variables corresponding to each museum room.

// The callback procedure passed in parameter to the function will be called
// whenever entering into or exiting from a room and it will give information
// about the detected groupe of beacons in order to
// emulate the audio-guide to play the corresponding track.

// Museum UUID
sUUID is string = "f4231ab6-5ef2-6c99-4229-af6c72e0446e"
// Create a beaconGroup variable for each room
groupRoom1 is beaconGroup
groupRoom1..UUID = sUUID
groupRoom1..Major = 1
groupRoom2 is beaconGroup
groupRoom2..UUID = sUUID
groupRoom2..Major = 2
groupRoom3 is beaconGroup
groupRoom3..UUID = sUUID
groupRoom3..Major = 3
groupRoom4 is beaconGroup
groupRoom4..UUID = sUUID
groupRoom4..Major = 4
// Start the detection
arrBeaconGroup is array of beaconGroup = [groupRoom1, ...
   groupRoom2, groupRoom3, groupRoom4)
// The ProcDetection procedure will be run whenever the mobile enters into
// or exits from the area defined by each group of beacons.
BeaconDetectBackground(arrBeaconGroup, ProcDetection)
PROCÉDURE ProcDetection(Group is beaconGroup, nType is int)

IF nType = bdapLeave THEN
// Stop the current track
RETURN
END

IF nType = bdapEnter THEN
SWITCH Group..Major
CASE 1
// Read the track for room 1
CASE 2
// Read the track for room 2
...
END
END
Sintaxis

Iniciando una detección en Background en varios grupos de etiquetas de balizas Ocultar los detalles

<Result> = BeaconDetectBackground(<Array> , <WLanguage procedure>)
<Result>: Boolean
  • True si se inició la detección,
  • False en caso contrario. Para conocer los detalles del error, utilice ErrorInfo.
<Array>: Array of beaconGroup
Nombre de array de las variables beaconGroup que describen los grupos de etiquetas Beacon a detectar.
<WLanguage procedure>: Procedure name
Nombre del WLanguage Procedure (también llamado "callback") llamado cuando el dispositivo entra o sale del área de transmisión de un grupo de etiquetas Beacon.
Este procedimiento tiene el siguiente formato:
PROCEDURE <Procedure name>(<Group>, <Type>)
  • El parámetro <Grupo> es un beaconGroup Variable que describe el grupo de etiquetas de la baliza para el que el dispositivo entró o salió del área de emisión.
  • El parámetro <Tipo> es una constante entera que corresponde a uno de los siguientes valores:
    bdbEnterEl dispositivo entró en el área de emisión de un grupo de etiquetas Beacon.
    bdbLeaveEl dispositivo salió del área de emisión de un grupo de etiquetas Beacon.
Atención:
  • Este Procedure debe ser un Procedure global de proyecto. De lo contrario, se producirá un error fatal durante la llamada a la función.
  • Este Procedure no debe acceder a la interfaz de la aplicación. De hecho, como el Procedure puede ser llamado en Background, las ventanas no necesariamente se abren.

Iniciando una detección en Background en un grupo de etiquetas de baliza Ocultar los detalles

<Result> = BeaconDetectBackground(<Group of tags> , <WLanguage procedure>)
<Result>: Boolean
  • True si se inició la detección,
  • False en caso contrario. Para conocer los detalles del error, utilice ErrorInfo.
<Group of tags>: beaconGroup variable
Nombre de beaconGroup Variable describiendo el grupo de etiquetas de la baliza a detectar.
<WLanguage procedure>: Procedure name
Nombre del WLanguage Procedure (también llamado "callback") llamado cuando el dispositivo entra o sale del área de transmisión de un grupo de etiquetas Beacon.
Este procedimiento tiene el siguiente formato:
PROCEDURE <Procedure name>(<Group>, <Type>)
  • El parámetro <Grupo> es un beaconGroup Variable que describe el grupo de etiquetas de la baliza para el que el dispositivo entró o salió del área de emisión.
  • El parámetro <Tipo> es una constante entera que corresponde a uno de los siguientes valores:
    bdbEnterEl dispositivo entró en el área de emisión de un grupo de etiquetas Beacon.
    bdbLeaveEl dispositivo salió del área de emisión de un grupo de etiquetas Beacon.
Atención:
  • Este Procedure debe ser un Procedure global de proyecto. De lo contrario, se producirá un error fatal durante la llamada a la función.
  • Este Procedure no debe acceder a la interfaz de la aplicación. De hecho, como el Procedure puede ser llamado en Background, las ventanas no necesariamente se abren.
Observaciones

Usar un servicio de detección de móviles

La función BeaconDetectBackground activa un servicio de detección del móvil, no relacionado con WINDEV Mobile. Cuando este servicio está habilitado, se detiene y sólo detecta las entradas y salidas en/desde las áreas.
Atención: Para reducir el consumo de la batería del dispositivo, la búsqueda de las etiquetas que se encuentran cerca del dispositivo se realiza periódicamente con intervalos de tiempo de hasta varios minutos. Por lo tanto, puede haber algún tiempo entre el momento en que el dispositivo entra (o sale) del radio de emisión de un grupo de etiquetas Beacon y el Notification efectivo.
Para detener el servicio de detección de móviles, debe:
Atención: El cierre y la reanudación de la aplicación no tiene ningún efecto sobre el modo de funcionamiento del servicio de detección de móviles.

¿Cómo identificar las etiquetas cercanas?

La detección de etiquetas Beacon con la función BeaconDetectBackground es independiente del ciclo de vida de la aplicación (esta detección es realizada por un servicio del dispositivo móvil que no está relacionado con WINDEV Mobile).
  • Si la solicitud está en Background, seguirá recibiendo las notificaciones de entrada y salida.
  • Si la aplicación se detiene y luego se reinicia en la misma área, no se hará Notification. Debe salir de la zona para recibir en la salida Notification. Del mismo modo, debe entrar en la zona para recibir una entrada Notification.
  • If the application is stopped, se iniciará automáticamente cuando se detecte un grupo de etiquetas Beacon. En este caso, se ejecutan los siguientes procesos:
    • código de inicialización del proyecto,
    • procedimiento WLanguage ("callback") pasado como parámetro de la función BeaconDetectBackground.
    La primera ventana de aplicación no se abrirá.
Se pueden utilizar varias soluciones para averiguar la lista precisa de las etiquetas de las balizas que se encuentran cerca del dispositivo, así como su distancia:
  • Llamar BeaconDetectPrecise. Esta función consume mucha energía y para ahorrar la batería del dispositivo, le aconsejamos que la llame:
    • en el procedimiento WLanguage (callback) de la función BeaconDetectBackground.
    • al iniciar la aplicación.
    • en el Process para mover la aplicación en el primer plano.
  • Almacenar el área en el que se encuentra el dispositivo mediante el procedimiento WLanguage de la función BeaconDetectBackground. Este almacenamiento puede realizarse en un archivo.

Notas adicionales

  • Las detecciones de Active pueden ser listadas por BeaconListBackgroundDetection.
  • Si un grupo de etiquetas con la misma información (UUID, mayor, menor) se añade varias veces a la lista de detecciones de Active, sólo se tendrá en cuenta la última adición.
AndroidWidget Android

Versión necesaria

Las funciones para administrar las etiquetas de las balas están disponibles para los dispositivos que ejecutan una versión de Android mayor o igual a la versión 4.3 (API nivel 18).
Si se utiliza la función con una versión anterior del sistema, se produce un error fatal.
Para conocer la versión del sistema Android en la que se ejecuta la aplicación, utilice la función SysAndroidVersion.
AndroidWidget Android El dispositivo debe ser compatible con la tecnología Bluetooth de baja energía (Bluetooth LE).
AndroidWidget Android

Permisos necesarios

La llamada a esta función modifica los permisos requeridos por la aplicación.
Permiso necesario: ACCESS_COARSE_LOCATION : Permite aplicar a get la posición aproximada del dispositivo.
iPhone/iPad

Características específicas

  • Tienes la capacidad de detectar hasta 20 grupos. Se producirá un error si el número total de grupos a detectar supera este número.
  • Se requiere un acceso a la red para que la detección funcione correctamente.
  • Si la aplicación se inició en segundo plano, es importante no realizar procesos largos en el WLanguage Procedure (llamada Procedure). De hecho, el sistema iOS termina automáticamente la ejecución de la aplicación después de diez segundos.
  • La llamada a esta función modifica los permisos requeridos por la aplicación.
    Permisos necesarios:
    • Ubicación Siempre Uso Descripción
    • Descripción del uso de la localización cuando la aplicación está activa
    • Descripción del uso de la localización siempre y cuando se usa.
Componente : wd250android.jar
Versión mínima requerida
  • Versión 23
Comentarios
Haga clic en [Agregar] para publicar un comentario