Buscar pacotes, repositórios e categorias de apps

Detalhes do pacotev0.3.1

beacon_broadcast

Um plugin Flutter para transformar seu dispositivo em um beacon. O plugin usa a biblioteca AltBeacon para Android e o CoreLocation para iOS.

AndroidiOS
Downloads em 30 dias
184
Curtidas
43
Pontos Pub
140

Instalar pacote

flutter pub add beacon_broadcast

Visão geral do pacote

Orientação gerada a partir de informações públicas. Apenas para referência.

O pacote beacon_broadcast permite que aplicativos Flutter transformem um dispositivo em um beacon Bluetooth usando a biblioteca AltBeacon no Android e o CoreLocation no iOS. Ele permite que desenvolvedores transmitam sinais de beacon personalizados, sendo útil para interações baseadas na proximidade, como navegação interna, notificações disparadas por localização ou rastreamento de ativos. O plugin foi projetado para compatibilidade entre plataformas e se integra perfeitamente ao ecossistema existente de beacons. Suporta transmissão de beacon em primeiro plano e em segundo plano, garantindo uma transmissão contínua do sinal independentemente do estado do dispositivo.

Casos de uso

  • sistemas de navegação interna
  • Marketing de proximidade
  • Rastreamento de ativos em armazéns
  • gatilhos de aplicativo baseado em localização
  • automação de casa inteligente

Principais recursos

  • Suporte multiplataforma (Android e iOS)
  • Usa os frameworks AltBeacon e CoreLocation
  • Valores personalizáveis de UUID, maior e menor do sinalizador
  • rádio de sinalização de fundo
  • API simples para iniciar/parar transmissões

Indicado para

  • Desenvolvedores de aplicativos de proximidade
  • Aplicativos que exigem posicionamento interno
  • Serviços de localização para varejo ou empresa
  • Projetos de IoT e ambiente inteligente

Considerações

  • Permissões de Bluetooth necessárias em ambas as plataformas
  • O uso da bateria pode aumentar durante a transmissão contínua
  • O modo em segundo plano do iOS exige configuração adequada
  • A detecção de sinal depende das capacidades de varredura dos dispositivos próximos

README original

Snapshot do README original do repositório-fonte vinculado. Consulte o repositório para o conteúdo mais recente.

Beacon Broadcast plugin for Flutter

Awesome Flutter Pub

A Flutter plugin for turning your device into a beacon.

Usage

To use this plugin, add beacon_broadcast as a dependency in your pubspec.yaml file and import:

import 'package:beacon_broadcast/beacon_broadcast.dart';

Now you can create BeaconBroadcast object and start using it:

Important note: For Android app, user needs to turn on Bluetooth on the device first.

BeaconBroadcast beaconBroadcast = BeaconBroadcast();

In the simplest case, to start advertising just set your UUID, major and minor id and call start():

beaconBroadcast
    .setUUID('39ED98FF-2900-441A-802F-9C398FC199D2')
    .setMajorId(1)
    .setMinorId(100)
    .start();

You can also customize your beacon before starting:

beaconBroadcast
    .setUUID('39ED98FF-2900-441A-802F-9C398FC199D2')
    .setMajorId(1)
    .setMinorId(100)
    .setTransmissionPower(-59) //optional
    .setAdvertiseMode(AdvertiseMode.lowPower) //Android-only, optional
    .setIdentifier('com.example.myDeviceRegion') //iOS-only, optional
    .setLayout('s:0-1=feaa,m:2-2=10,p:3-3:-41,i:4-21v') //Android-only, optional
    .setManufacturerId(0x001D) //Android-only, optional
    .start();

You can check what's current state of your beacon:

bool isAdvertising = await beaconBroadcast.isAdvertising()

You can also listen for changes in beacon advertising state:

beaconBroadcast.getAdvertisingStateChange().listen((isAdvertising) {
    // Now you know if beacon is advertising
});

Before advertising, you may want to check if your device supports transmitting as a beacon. You may do it using checkTransmissionSupported() method.

BeaconStatus transmissionSupportStatus = await beaconBroadcast.checkTransmissionSupported();
switch (transmissionSupportStatus) {
  case BeaconStatus.SUPPORTED:
    // You're good to go, you can advertise as a beacon
    break;
  case BeaconStatus.NOT_SUPPORTED_MIN_SDK:
    // Your Android system version is too low (min. is 21)
    break;
  case BeaconStatus.NOT_SUPPORTED_BLE:
    // Your device doesn't support BLE
    break;
  case BeaconStatus.NOT_SUPPORTED_CANNOT_GET_ADVERTISER:
    // Either your chipset or driver is incompatible
    break;
}

If you want to stop advertising, just call stop():

beaconBroadcast.stop();
Examples

Simple usage example can be found in the example folder.

Changing beacon layouts

By default beacons layout is set according to the manufacturer (see section Beacon manufacturers). You can change that layout to imitate transmitting as a different kind of beacon.

Note: For iOS layout is set to iBeacon and can't be changed.

To broadcast as AltBeacon:

beaconBroadcast
    .setUUID('39ED98FF-2900-441A-802F-9C398FC199D2')
    .setMajorId(1)
    .setMinorId(100)
    .start();

To broadcast as iBeacon:

beaconBroadcast
    .setUUID('39ED98FF-2900-441A-802F-9C398FC199D2')
    .setMajorId(1)
    .setMinorId(100)
    .setLayout('m:2-3=0215,i:4-19,i:20-21,i:22-23,p:24-24')
    .setManufacturerId(0x004c)
    .start();
Adding extra data

If you have your beacon layout set accordingly, you're allowed to transmit some extra data. Depending on the layout it's usually up to 2 bytes.

For AltBeacon it's 1 byte of additional data (source). For iBeacon (iOS) there's no option to send extra data, as the iBeacon layout doesn't support it.

To add extra data using AltBeacon layout:

beaconBroadcast
    .setUUID('39ED98FF-2900-441A-802F-9C398FC199D2')
    .setMajorId(1)
    .setMinorId(100)
    .setExtraData([123])
    .start();
Beacon manufacturers
Android

Android beacon will advertise as the AltBeacon manufactured by RadiusNetwork. You can change it with setLayout() and setManufacturerId() methods.

iOS

For iOS, beacon will advertise as an iBeacon (by Apple), it can't be changed.

Transmitting in the background
Android

Due to background execution limits introduced in Android 8 beacons transmission in the background is limited. Based on the AltBeacon documentation it's around 10 minutes, after that time transmission will stop. Current version of plugin doesn't support Foreground Services to exceed this limitation.

iOS

For iOS, application doesn't work in the background. According to the CoreLocation documentation:

Important

After advertising your app as a beacon, your app must continue running in the foreground to broadcast the needed Bluetooth signals. If the user quits the app, the system stops advertising the device as a peripheral over Bluetooth.In addition, since iOS 13, a privacy usage description is required to use Bluetooth. Otherwise, the app will experience a runtime crash. To remedy this, add the following lines to your Info.plist

<key>NSBluetoothAlwaysUsageDescription</key>
<string>(Reason bluetooth is used)</string>

For deployment targets earlier than iOS 13, add these additional lines to your Info.plist

<key>NSBluetoothPeripheralUsageDescription</key>
<string>(Reason bluetooth is used)</string>
About

This plugin uses Android Beacon Library for Android and CoreLocation for iOS.

Todo

There are still few things left to implement:

  • [X] Adding option for checking for Android device support programmatically
  • [X] Adding option to set layout and manufacturer for Android implementation
  • [ ] Handle turning on BLE before transmitting
  • [ ] Add Foreground Service to exceed background limitations on Android 8+

Categorias

Repositório-fonte

Projetos que usam este pacote

Ainda não há dados.