Rock Mobile Docs
App Factory
  • Welcome 👋
  • 📱Getting Started
    • Building Your First App
      • Creating An App
      • App Configuration
      • Adding Content
      • Deploying Your App
    • Lexicon
  • 🧱Essentials
    • Animations
    • Blocks
      • CMS
        • Content
        • Content Channel Item View
        • Content Collection View
        • Daily Challenge Entry
        • Hero
        • Lava Item List
        • Login
          • Using Auth0
          • Using Entra
        • Profile Details
        • Register
        • Structured Content View
        • Workflow Entry
      • Check-in
        • Check-in
      • Communication
        • Chat View
        • Communication Entry
        • Communication List Subscribe
        • Communication View
        • SMS Conversation List
        • SMS Conversation
      • Connection
        • Add Connection Request
        • Connection Type List
        • Connection Opportunity List
        • Connection Request List
        • Connection Request Detail
      • Core
        • Attribute Values
        • Notes
        • Search
        • Smart Search
        • Quick Note
        • My Notes
      • CRM
        • Group Members
        • Person Profile
      • Events
        • Live Experience Occurrences
        • Live Experience
        • Calendar Event Item Occurrence View
        • Calendar Event List
        • Calendar View
        • Event Item Occurrence List By Audience Lava
      • Finance
        • Giving
        • Scheduled Transaction List
        • Transaction Detail
        • Transaction List
      • Groups
        • Group Attendance Entry
        • Group Edit
        • Group Finder
        • Group Member Edit
        • Group Member List
        • Group Member View
        • Group Registration
        • Group View
        • Schedule Preference
        • Schedule Sign Up
        • Schedule Toolbox
        • Schedule Unavailability
      • Prayer
        • Answer To Prayer
        • My Prayer Requests
        • Prayer Card View
        • Prayer Request Details
        • Prayer Session
        • Prayer Session Setup
      • Reminders
        • Reminder Edit
        • Reminder List
        • Reminder Dashboard
      • Security
        • Onboard Person
    • Codex
      • Application Strategy
      • XAML Styling
      • Resources
      • Documentation
    • Commands
      • Communication Commands
      • Navigation Commands
      • Media Commands
      • Utility Commands
    • Controls
      • Behaviors
        • Event To Command Behavior
        • Touch Behavior
      • Content Controls
        • Activity Indicator
        • Application Info
        • Avatar
        • Bible Audio
        • Bible Browser
        • Bible Reader
        • Campus Context Picker
          • Camera Code Reader
        • Cards
          • Block Card
          • Contained Card
          • Inline Card
          • Elements of a Card
          • Masks
          • Styling Cards With CSS
        • Context Menu
        • Countdown
        • Cover Sheet
        • Divider
        • Expander
        • Field Container
        • Flip View
        • Following Icon
        • Geo Boundary View
        • Gradient Label
        • HTML
        • Icon
        • Icon Button
        • Image
        • Interaction
        • Items Collection
        • Login Status
        • Login Status Photo
        • Lottie View
        • Markdown
        • Media Player
          • Legacy
        • Notification Box
        • Paragraph Text
        • QR Code
        • Ratio View
        • Redirect
        • Responsive Column
        • Responsive Layout
        • Scroll View
        • Segment Picker
        • Styled Border
        • Styled View
        • Tag
        • Toggle Button
        • Web View
      • Developer Controls
        • Execute Command
        • Bible Book And Chapter Picker
        • Command Reference
        • Field Stack
        • Media Cast Button
        • Media Progress Bar
        • Parameter
        • Scan Code
        • Validator
        • Volume Control
        • Zone
      • Effects
        • Blur Effect
        • Safe Area Padding Effect
      • Form Fields
        • Attribute Value Editor
        • Address
        • Campus Picker
        • Check Box
        • Check Box List
        • Currency Box
        • Date Picker
        • Email Box
        • Literal
        • Marital Status Picker
        • Multi Picker
        • Number Box
        • Phone Number Box
        • Picker
        • Text Box
        • Text Editor
      • XAML Extensions
        • Boolean Value Converter
        • From Json
        • Inverse Boolean Converter
        • Nullable Guid Converter
        • On Device Platform
        • On Device Type
        • Palette Color
        • Seconds To Time String Converter
    • Field Types
    • Lava
      • Context in Lava
    • Performance
    • Tips and Tricks
      • Custom Site Attributes
      • Migrating to .NET MAUI (V6)
      • Page Anchors
    • Troubleshooting
    • Advanced Topics
      • Dynamic Content
      • Deep Linking
      • Proximity Attendance
  • 🎨Styling
    • Introduction
    • Style Guide
      • Walkthrough
      • Colors
      • Typography
      • Utilities
      • Shell Components
      • Migrating
    • Legacy
      • Colors
      • Borders
        • Border Color
        • Border Radius
        • Border Width
      • Text
        • Background Color
        • Text Size
        • Alignment
        • Color
        • Line Height
        • Weights & Styles
      • iOS Shadows
      • Styling Components
        • Tags
        • Bible
        • Button
        • Form Fields
        • Modals
      • Custom CSS
  • 👨‍💻Developers
    • Fundamentals
    • Core & Shell Dependencies
    • Custom Blocks
    • OS Version Requirements
  • 🏭App Factory
    • Overview
    • Android Keystore
    • App Store Product Page
    • Developer Accounts
    • Image Resources
    • In-App Giving
    • Publishing Requirements
    • Push Notifications
    • Rock Logins
    • Shell Update Requirements
Powered by GitBook

Resources

  • Release Notes
  • Community Chat
  • Ask Chip

Documentation

  • Rock Manuals
  • Lava

⚙️ Powered by Rock RMS

On this page
  • How It Works
  • What Is iBeacon?
  • How Rock Uses iBeacon
  • Rock Configuration
  • UUID:
  • Major (Campus)
  • Minor (Location Beacon Identifier)
  • Beacon Hardware Configuration
  • Beacon UUID (RockInstanceId)
  • Major and Minor
  • Mobile Shell Configuration
  • StartBeaconMonitoring
  • StopBeaconMonitoring
  • Summary
Export as PDF
  1. Essentials
  2. Advanced Topics

Proximity Attendance

Last updated 5 hours ago

Proximity Attendance lets people automatically check in and out when they enter or leave a location, using small Bluetooth devices called beacons. This removes the need for manual check-ins at events or services.

These beacons use a technology called iBeacon, which broadcast a small signal that your phone can detect.


How It Works

  1. A beacon continuously broadcasts its iBeacon signal.

  2. A nearby mobile device detects this signal and triggers the app to wake up in the background.

  3. The app then automatically checks the person in or out of the event or service.

This is especially helpful for busy check-in stations or children's ministry check-ins where speed and simplicity matter.


What Is iBeacon?

iBeacon is a protocol developed by Apple that allows Bluetooth Low Energy (BLE) devices in this case the beacon to broadcast small packets of data, known as advertisements. Each iBeacon signal includes a payload with the following components:

  • UUID (Universally Unique Identifier): A 128-bit value shared among a group of beacons (e.g., an organization).

  • Major: A 16-bit integer used to identify a subgroup within the UUID (e.g., a campus).

  • Minor: A 16-bit integer used to identify a specific beacon within a Major group (e.g., a room or kiosk).

Note: Major and Minor values are used strictly for identification. They do not transmit any actual data beyond their numeric values.


How Rock Uses iBeacon

In our setup:

  • Major → CampusId: Identifies the specific campus or building.

Think of it like this: the UUID is the church organization, the Major is the building or campus, and the Minor is the room.


Rock Configuration

UUID:

  • No action needed — the UUID is automatically pushed to the mobile shell.

Major (Campus)

  • No action needed — Rock maps the CampusId to the Major value.

Minor (Location Beacon Identifier)

  1. Navigate to the Named Location where the beacon will be used.

  2. In the location settings, set the Beacon Identifier to a 16-bit integer (range: 0–65,535).

This value will be used as the Minor value when configuring your physical beacon.


Beacon Hardware Configuration

We won’t cover how to configure your physical beacon, as each manufacturer has its own process and tools. However, we will show you how to retrieve the necessary values from Rock to configure your beacon correctly.

Beacon UUID (RockInstanceId)

Use the following SQL query to retrieve the RockInstanceId from your Rock RMS database:

SELECT  
    [Guid]
FROM 
    [Attribute]
WHERE 
    [Key] = 'RockInstanceId'
    AND [EntityTypeQualifierColumn] = 'SystemSetting';
  • Use this value as the UUID when configuring your beacon.

All beacons in your organization use the same UUID, regardless of location. Differentiation happens via Major and Minor.

Major and Minor

  • Major: Set this to the CampusId where the beacon will be deployed.

You can configure multiple beacons with the same UUID/Major/Minor to cover larger spaces (e.g., auditoriums, hallways).


Mobile Shell Configuration

After configuring your Rock instance and physical beacons, use the following commands in your mobile app:

StartBeaconMonitoring

Begins monitoring entry and exit events for the RockInstanceId region. This command guides the user through enabling location permissions so the app can begin monitoring nearby beacons.

Examples

This is a basic example to start the beacon monitoring process.

<Button Text="Start Beacon Monitoring"
    StyleClass="btn, btn-primary"
    Command="{Binding StartBeaconMonitoring}" />

You can also customize the content of the instruction if you wish to do so.

<Button Text="Start Beacon Monitoring"
    StyleClass="btn, btn-primary"
    Command="{Binding StartBeaconMonitoring}">
    <Button.CommandParameter>
        <Rock:StartBeaconMonitoringCommandParameters AllowLocationPermissionTitle="Allow Permission Location">
        </Rock:StartBeaconMonitoringCommandParameters>
    </Button.CommandParameter>
</Button>

Properties

Property
Type
Description

AllowLocationPermissionTitle

string

The title on the AllowLocationPermission Page

AllowLocationPermissionSubtitle

string

The subtitle on the AllowLocationPermission Page

AllowLocationPermissionView

View

Your custom view on the AllowLocationPermission Page

OpenSettingsTitle

string

The title on the OpenSettings Page

OpenSettingsSubtitle

string

The subtitle on the OpenSettings Page

OpenSettingsView

View

Your custom view on the OpenSettings Page

SuccessScreenTitle

string

The title on the Success Page

SuccessScreenSubtitle

string

The subtitle on the Success Page

SuccessScreenView

View

Your custom view on the Success Page

StopBeaconMonitoring

Stops all active beacon monitoring. When the app is deleted, it also stops monitoring.

Example

<Button Text="Stop Beacon Monitoring"
    StyleClass="btn, btn-primary"
    Command="{Binding StopBeaconMonitoring}" />

Summary

Here’s what matters:

  • Every beacon has 3 key pieces: UUID (RockInstanceId), Major (campus), Minor (location).

  • Rock handles most of the hard work behind the scenes.

Your job is to:

  1. Assign a Beacon Identifier in each Named Location that will be used for attendance (that’s the Minor value).

  2. Make sure your beacon is programmed with the right UUID, Major, and Minor.

  3. Start the Beacon Monitoring process somewhere in your mobile app.

UUID → : This is shared across all organization-wide beacons and represents the entire church or organization.

Minor → Location : Identifies a specific location, such as a room, kiosk, or classroom.

Minor: Use the Beacon Identifier value from the Named Location you . This uniquely identifies the beacon's specific location within the campus.

🧱
RockInstanceId
BeaconIdentifier
configured earlier
Beacon Identifier is the Minor value.