Este plugin facilita a escaneamento de iBeacons próximos e seu alcance em um aplicativo Flutter. Os beacons escaneados fornecem valores de proximidade.
Orientação gerada a partir de informações públicas. Apenas para referência.
O plugin beacons_plugin simplifica a varredura e medição de iBeacon em aplicativos Flutter para Android e iOS. Permite que desenvolvedores detectem iBeacons próximos e recebam atualizações em tempo real sobre proximidade, como imediata, próxima ou distante. O plugin se integra perfeitamente às funcionalidades nativas de Bluetooth, fornecendo uma API simples para monitorar sinais de beacon sem configurações complexas. Ideal para serviços baseados em localização, navegação interna e aplicativos conscientes do contexto.
Casos de uso
sistemas de navegação interna
Notificações baseadas em proximidade
Engajamento do cliente varejista
Rastreamento de ativos
Experiências móveis conscientes do contexto
Principais recursos
varredura em tempo real de sinalizadores
detecção de proximidade (imediatamente, perto, longe)
Suporte multiplataforma (Android e iOS)
Integração simples com o Flutter
Capacidade de monitoramento em segundo plano
Indicado para
Desenvolvedores construindo aplicativos com localização
Aplicativos de varejo e hospitalidade
Soluções para escritórios e campus inteligentes
Sistemas de notificação baseados em eventos
Projetos de posicionamento interno
Considerações
Permissões de Bluetooth necessárias em ambas as plataformas
Limitado ao protocolo iBeacon
A varredura em segundo plano pode afetar a duração da bateria
O iOS exige configuração de modo em segundo plano
A precisão depende de fatores ambientais
README original
Snapshot do README original do repositório-fonte vinculado. Consulte o repositório para o conteúdo mais recente.
beacons_plugin
This plugin is developed to scan nearby iBeacons on both Android iOS. This library makes it easier to scan & range nearby BLE beacons and read their proximity values.
Android
For Android change min SDK version:
defaultConfig {
...
minSdkVersion 19
...
}
Change your Android Project's MainActivity class to following:
import com.umair.beacons_plugin.BeaconsPlugin
import io.flutter.embedding.android.FlutterActivity
class MainActivity : FlutterActivity(){
override fun onPause() {
super.onPause()
//Start Background service to scan BLE devices
BeaconsPlugin.startBackgroundService(this)
}
override fun onResume() {
super.onResume()
//Stop Background service, app is in foreground
BeaconsPlugin.stopBackgroundService(this)
}
}
That's it for Android.
iOS
In your AppDelegate.swift file change it to like this:
// if you need to monitor also major and minor use the original version and not this forkBeaconsPlugin.addRegion("myBeacon", "01022022-f88f-0000-00ae-9605fd9bb620")
.then((result) {
print(result);
});
//Send 'true' to run in background [OPTIONAL]awaitBeaconsPlugin.runInBackground(true);
//IMPORTANT: Start monitoring once scanner is setup & ready (only for Android)if (Platform.isAndroid) {
BeaconsPlugin.channel.setMethodCallHandler((call) async {
if (call.method == 'scannerReady') {
awaitBeaconsPlugin.startMonitoring();
}
});
} elseif (Platform.isIOS) {
awaitBeaconsPlugin.startMonitoring();
}
if (Platform.isAndroid) {
//Prominent disclosureawaitBeaconsPlugin.setDisclosureDialogMessage(
title: "Need Location Permission",
message: "This app collects location data to work with beacons.");
//Only in case, you want the dialog to be shown again. By Default, dialog will never be shown if permissions are granted.awaitBeaconsPlugin.clearDisclosureDialogShowFlag(false);
}
BeaconsPlugin.channel.setMethodCallHandler((call) async {
if (call.method == 'isPermissionDialogShown') {
//Do something here
}
});