|
|
|
|
- Usar un servicio de detección de móviles
- ¿Cómo identificar los faros cercanos?
- Varios
- Versión necesaria
- Bluetooth de baja energía
- Permisos necesarios
- Características específicas
BeaconDetectBackground( Función) Notifica a la aplicación cuando el dispositivo entra o sale del rango de transmisión de un conjunto de balizas. // 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. // Each Beacon is associated with the same UUID corresponding to the museum and // a Major number corresponding to the room in which the beacon will be positioned. // A Beacon is placed at each entrance to each room of the museum.. // The application must call the BeaconDetectBackground function // with an array of BeaconGroup variables corresponding to each museum room. // The callback procedure passed as 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)
PROCEDURE ProcDetection(Group is beaconGroup, nType is int) IF nType = bdbLeave THEN // Stop the current track RETURN END IF nType = bdbEnter 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 varios grupos de Faros en la Background Ocultar los detalles
<Result> = BeaconDetectBackground(<Array> , <WLanguage procedure>)
<Result>: booleano - True si se inició la detección,
- False en caso contrario. Para obtener más información sobre el error, utilice la función ErrorInfo.
<Array>: Array de beaconGroup Nombre de la variable array de beaconGroup que describe el grupo de balizas a detectar. <WLanguage procedure>: Nombre de Procedure Nombre de la WLanguage Procedure ("callback") llamada cuando el dispositivo entra o sale del rango de transmisión de un grupo de Balizas. Este procedimiento tiene el siguiente formato: PROCEDURE <Procedure name>(<Group>, <Type>) - El parámetro <Grupo> es una variable de tipo beaconGroup que describe el grupo de balizas para el que el dispositivo acaba de entrar o salir del rango de transmisión.
- El parámetro es una constante entera que corresponde a uno de los siguientes valores:
| | bdbEnter | El dispositivo entró en el rango de transmisión de un grupo de faros. | bdbLeave | El dispositivo dejó el rango de transmisión de un grupo de faros. |
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 un grupo de faros en la Background Ocultar los detalles
<Result> = BeaconDetectBackground(<Group of Beacons> , <WLanguage procedure>)
<Result>: booleano - True si se inició la detección,
- False en caso contrario. Para obtener más información sobre el error, utilice la función ErrorInfo.
<Group of Beacons>: beaconGroup Variable Nombre de la beaconGroup Variable que describe el grupo de balizas a detectar. <WLanguage procedure>: Nombre de Procedure Nombre de la WLanguage Procedure ("callback") llamada cuando el dispositivo entra o sale del rango de transmisión de un grupo de Balizas. Este procedimiento tiene el siguiente formato: PROCEDURE <Procedure name>(<Group>, <Type>) - El parámetro <Grupo> es una variable de tipo beaconGroup que describe el grupo de balizas para el que el dispositivo acaba de entrar o salir del rango de transmisión.
- El parámetro es una constante entera que corresponde a uno de los siguientes valores:
| | bdbEnter | El dispositivo entró en el rango de transmisión de un grupo de faros. | bdbLeave | El dispositivo dejó el rango de transmisión de un grupo de faros. |
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, está en pausa y solo detecta las entradas y salidas en/desde rangos. Atención: Para reducir el consumo de batería, el dispositivo busca balizas cercanas en intervalos de tiempo de hasta varios minutos. Por lo tanto, puede transcurrir cierto tiempo entre el momento en que el dispositivo entra (o sale) del alcance de transmisión de un grupo de balizas y el momento en que la Notification aparece en la aplicación. 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 los faros cercanos? La detección de Beacon a través de BeaconDetectBackground es independiente de la vida útil de la aplicación (esta detección la realiza un servicio de dispositivo móvil que no es relacionado para WINDEV Mobile). - Si la aplicación está en Background , seguirá recibiendo las notificaciones de entrada y salida.
- Si la aplicación se detiene y luego se reinicia en el mismo rango , no habrá Notification. Es necesario dejar el rango de transmisión para recibir una salida Notification. Asimismo, es necesario entrar en el rango para recibir una entrada Notification.
- Si la aplicación se detiene , se iniciará automáticamente cuando se detecte un grupo de Beacons. 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á.
Existen varias soluciones para get la lista exacta de Beacons cerca del dispositivo, y para determinar a qué distancia se encuentran: - 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.
- Guarde el rango de transmisión donde se encuentra el dispositivo a través del WLanguage Procedure de BeaconDetectBackground. Este almacenamiento puede realizarse en un archivo.
Varios - Las detecciones de Active pueden ser listadas por BeaconListBackgroundDetection.
- Si un grupo de Balizas 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.
Componente: wd290android.aar
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|