2017-04-11 3 views
0

hier Code istich mit cordova-plugin-IBeacon aber nicht funktioniert (in Android finden Baken does'nt)

Leuchtfeuer-provider.ts >>

initialise(): any { 
    let promise = new Promise((resolve, reject) => { 

     if (this.platform.is('cordova')) { 


     IBeacon.enableBluetooth(); 

     this.delegate = IBeacon.Delegate(); 

     this.delegate.didRangeBeaconsInRegion() 
      .subscribe(
      data => { 
      this.events.publish('didRangeBeaconsInRegion', data); 
      }, 
      error => console.error() 
     ); 

     this.region = IBeacon.BeaconRegion('deskBeacon', '24DDF411-8CF1-440C-87CD-E368DAF9C93E'); 

     IBeacon.startRangingBeaconsInRegion(this.region) 
      .then(
     () => { 
      resolve(true); 
      }, 
      error => { 
      console.error('Failed to begin monitoring: ', error); 
      resolve(false); 
      } 
     ); 


     } else { 
     console.error("This application needs to be running on a device"); 
     resolve(false); 
     } 
    }); 

    return promise; 
    } 


} 

home.ts >>

export class HomePage { 

    beacons: BeaconModel[] = []; 
    zone: any; 

    constructor(public navCtrl: NavController, public platform: Platform, public beaconProvider: BeaconProvider, public events: Events) { 

    this.zone = new NgZone({ enableLongStackTrace: false }); 

    } 

    ionViewDidLoad() { 
    this.platform.ready().then(() => { 
     this.beaconProvider.initialise().then((isInitialised) => { 
     if (isInitialised) { 
      this.listenToBeaconEvents(); 
     } 
     }); 
    }); 
    } 

    listenToBeaconEvents() { 
    this.events.subscribe('didRangeBeaconsInRegion', (data) => { 

     this.zone.run(() => { 

     this.beacons = []; 

     let beaconList = data.beacons; 
     beaconList.forEach((beacon) => { 
      let beaconObject = new BeaconModel(beacon); 
      this.beacons.push(beaconObject); 
     }); 

     }); 

    }); 
    } 

} 

In diesem Code ist das Ergebnis alert(JSON.stringify(data)):

{"eventType":"didRangeBeaconslnRegion","region":{"identifier":"desk beacon","uuid":"24DDF411-8CF1-440C-87CD-E368DAF9C93E","typeName":"BeaconRegion"}, "beacons":[]} 

Das Feld data.beacons ist leer.

Was ist das Problem?

eine weitere Frage ich versuche BLE-Zentral-Plugin zuerst, aber, wenn ich BLE-Zentral-Plugin ich bekam Signal, aber es wurde mir nicht Major, kleiner Wert, wenn ich diesen Wert von der Werbung bekommen?

+0

Ich nehme an, Sie haben die Datenstruktur dargestellt. Ist das beacons-Attribut wirklich null oder handelt es sich um ein leeres Array? – davidgyoung

+0

leeres Array .. "Beacons": [] gefällt mir –

Antwort

1

Es gibt viele Dinge, die dieses Verhalten verursachen könnten:

  • Stellen Sie sicher, dass Bluetooth auf
  • Stellen Sie sicher, dass Ihre App Runtime Standort Berechtigungen erteilt worden ist, benötigt Bluetooth-Geräte zu erkennen. Rufen Sie Einstellungen -> Apps -> [Name Ihrer App] -> Berechtigungen auf und stellen Sie sicher, dass bei eingeschaltetem Switch ein Standorteintrag angezeigt wird.
  • Überprüfen Sie mithilfe einer Standard-Detektor-App, dass Ihr Beacon tatsächlich die von Ihnen erwartete Kennung sendet. Versuchen Sie meine App hier zu lokalisieren: https://play.google.com/store/apps/details?id=com.radiusnetworks.locate&hl=en
+0

Ich habe versucht, Ihre Locate-App und das hat gut funktioniert .. –

Verwandte Themen