flutter_beacon 0.0.2 flutter_beacon: ^0.0.2 copied to clipboard
An hybrid iBeacon scanner SDK for Flutter plugin.
flutter_beacon #
Flutter plugin to work with iBeacons.
An hybrid iBeacon scanner SDK for Flutter plugin. Supports Android API 18+ and iOS 8+.
Features:
- Automatic permission management
- Ranging iBeacons
Installation #
Add to pubspec.yaml:
dependencies:
flutter_beacon: ^0.0.1
Setup specific for Android #
Nothing.
Setup specific for iOS #
In order to use beacons related features, apps are required to ask the location permission. It's a two step process:
- Declare the permission the app requires in configuration files
- Request the permission to the user when app is running (the plugin can handle this automatically)
The needed permissions in iOS is when in use
.
For more details about what you can do with each permission, see:
https://developer.apple.com/documentation/corelocation/choosing_the_authorization_level_for_location_services
Permission must be declared in ios/Runner/Info.plist
:
<dict>
<!-- When in use -->
<key>NSLocationWhenInUseUsageDescription</key>
<string>Reason why app needs location</string>
...
</dict>
How-to #
Ranging APIs are designed as reactive streams.
- The first subscription to the stream will start the ranging
Initializing Library #
try {
await flutterBeacon.initializeScanning;
} on PlatformException {
// library failed to initialize, check code and message
}
Ranging beacons #
final regions = <Region>[];
if (Platform.isIOS) {
regions.add(Region(
identifier: 'Apple Airlocate',
proximityUUID: 'E2C56DB5-DFFB-48D2-B060-D0F5A71096E0'));
} else {
// android platform, it can ranging out of beacon that filter all of Proximity UUID
regions.add(Region(identifier: 'com.beacon'));
}
flutterBeacon.ranging(regions).listen((RangingResult result) {
// result contains a region and list of beacons found
// list can be empty if no matching beacons were found in range
});
Under the hood #
- iOS uses native iOS CoreLocation
- Android uses the third-party library android-beacon-library (Apache License 2.0)
Author #
Flutter Beacon plugin is developed by Alann Maulana. You can contact me at alann.maulana@outlook.com.
License #
Apache License 2.0