OpenGate is an Android application that automatically calls your gate when you arrive home. It uses location services to detect when you're within a specified radius of your home location and initiates the gate call automatically.
- Automatic Gate Calling: Automatically calls your gate when you arrive within the specified radius
- Customizable Settings:
- Set your gate phone number
- Define your home location
- Adjust the detection radius (50-500 meters)
- Background Operation: Works in the background to monitor your location
- Battery Efficient: Uses FusedLocationProviderClient for optimized location updates
- Modern UI: Built with Material 3 design principles and Jetpack Compose
- Android 10.0 (API level 29) or higher
- Location permissions
- Phone call permissions
- Battery optimization exemption
- Clone the repository:
git clone https://github.com/physine/OpenGate.git-
Open the project in Android Studio
-
Build and run the application
-
On first launch, grant the required permissions:
- Location permission
- Phone call permission
- Battery optimization exemption
-
Set Gate Number:
- Enter your gate's phone number in the settings
- This is the number that will be called when you arrive
-
Set Home Location:
- Tap "Set Home Location" to set your current location as home
- This is the reference point for the radius detection
-
Adjust Radius:
- Use the slider to set the detection radius (50-500 meters)
- The gate will be called when you enter this radius
-
Save Settings:
- Tap "Save Settings" to apply your changes
- The service will start monitoring your location
- The app runs a foreground service that monitors your location
- When you enter the specified radius around your home location:
- The app automatically calls your gate number
- A notification is shown to confirm the call
- The service continues running in the background to monitor your location
- Built with Kotlin and Jetpack Compose
- Uses FusedLocationProviderClient for efficient location updates
- Implements a foreground service for reliable background operation
- Follows Material 3 design guidelines
- Supports Android 10+ features for phone calls
The app requires the following permissions:
ACCESS_FINE_LOCATION: For precise location trackingCALL_PHONE: To make phone calls to the gateREAD_PHONE_STATE: To check phone state for callsFOREGROUND_SERVICE: For background location monitoringWAKE_LOCK: To ensure reliable operation
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License.
