it-swarm.com.de

Kann ein Android-Gerät als iBeacon fungieren?

Kann ein Android-Gerät als iBeacon fungieren und herausfinden, wann andere Android-Geräte in seinen Bereich kommen? Müssen bei den anderen Android-Geräten Bluetooth aktiviert sein?

Wenn ein Kunde in meinen Shop kommt und er meine App nicht auf seinem Gerät installiert hat, kann iBeacon funktionieren oder muss er die App zuerst installieren? Es gibt so viele Kunden, die täglich in unseren Shop gehen. Aber wenn meine App nicht installiert ist, funktioniert das iBeacon-Konzept?

74
Hardik Joshi

UPDATE: Dies ist jetzt auf Android 5.0 möglich, und Sie können Open-Source-Code zum Übertragen als Beacon in der Version 2.1+ der Android Beacon Library finden. In der App " Locate " im Google Play Store gibt es auch eine voll funktionsfähige Version eines Beacon-Senders. Sie können auch als Beacon auf gerooteten Android 4.4.3-Geräten übertragen, es ist jedoch eine App erforderlich, die mit Systemberechtigungen installiert ist. Lesen Sie unten für ältere Betriebssystemversionen.

Hier ein Beispiel für die Übertragung von iBeacon mit der Android Beacon Library:

Beacon beacon = new Beacon.Builder()
        .setId1("2f234454-cf6d-4a0f-adf2-f4911ba9ffa6")
        .setId2("1")
        .setId3("2")
        .setManufacturer(0x004c)
        .setTxPower(-59)
        .build();
BeaconParser beaconParser = new BeaconParser()
        .setBeaconLayout("m:2-3=0215,i:4-19,i:20-21,i:22-23,p:24-24");
BeaconTransmitter beaconTransmitter = new BeaconTransmitter(getApplicationContext(), beaconParser); 
beaconTransmitter.startAdvertising(beacon);

Android 4.3-Geräte mit BluetoothLE können iBeacons sehen, fungieren jedoch nicht als iBeacons, da Android 4.3 den Peripherie-Modus nicht unterstützt. Samsung Android-Geräte enthalten ein eigenes proprietäres SDK. Geräte dürfen jedoch nicht als iBeacons fungieren. Siehe: Samsung-Android-Gerät als iBeacon ) bewerben - /) iOS-Geräte können jedoch als iBeacons fungieren.

Normalerweise sind die iBeacon-Technologien nicht dafür gedacht, dass Telefone andere Telefone sehen. Sie können das tun, was Sie auf iOS vorschlagen, indem Sie eine benutzerdefinierte App erstellen, mit der Telefone als iBeacon fungieren, und nach anderen iBeacons suchen. Auf diese Weise kann jeder mit der App andere Personen mit derselben App in der Nähe sehen. Für alle Telefone muss Bluetooth aktiviert sein. Unter Android ist dies derzeit nur mit Samsung-Geräten möglich.

Um Ihre zweite Frage zu beantworten: Ja, auf einem mobilen Gerät (Android oder iOS) muss eine App installiert sein, um iBeacons nutzen zu können. Kein Betriebssystem tut derzeit etwas, wenn ein iBeacon erkannt wird, es sei denn, eine App ist installiert, die speziell dafür programmiert ist. Kunden, die in einem Geschäft ankommen, müssen also bereits eine App installiert haben oder können nicht mit iBeacons interagieren.

69
davidgyoung

Ja, Android-Geräte können als iBeacon fungieren. Ich erreiche dies mit Android 5.X und AltBeacon-Bibliothek . Die AltBeacon-Bibliothek von Radius Networks bietet Klassen an, um Android als Beacon-Emitter und -Empfänger zu erstellen ... Hier ist ein Stück Code, der für Android als iBeacon funktionieren wird:

 Beacon beacon = new Beacon.Builder()
        .setId1("2f234454-cf6d-4a0f-adf2-f4911ba9ffa6") // UUID for beacon
        .setId2("1") // Major for beacon
        .setId3("5") // Minor for beacon
        .setManufacturer(0x004C) // Radius Networks.0x0118  Change this for other beacon layouts//0x004C for iPhone
        .setTxPower(-56) // Power in dB
        .setDataFields(Arrays.asList(new Long[] {0l})) // Remove this for beacon layouts without d: fields
        .build();

BeaconParser beaconParser = new BeaconParser()
        .setBeaconLayout("m:2-3=0215,i:4-19,i:20-21,i:22-23,p:24-24");

BeaconTransmitter beaconTransmitter = new BeaconTransmitter(getApplicationContext(), beaconParser); 
beaconTransmitter.startAdvertising(beacon, new AdvertiseCallback() {

            @Override
            public void onStartFailure(int errorCode) {
                Log.e(TAG, "Advertisement start failed with code: "+errorCode);
            }

            @Override
            public void onStartSuccess(AdvertiseSettings settingsInEffect) {
                Log.i(TAG, "Advertisement start succeeded.");
            }
        });

Hoffe, es wird hilfreich für Benutzer, die nach Android als iBeacon suchen. jj

15
Yogesh

Reines Android-SDK. Null 3rd Party Code - gut für Open Source Due Diligence 

byte[] payload = {(byte)0x02, (byte)0x15, // this makes it a iBeacon
            (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, // uuid
            (byte)0x00, (byte)0x00,  // Major
            (byte)0x00, (byte)0x00}; // Minor


    AdvertiseData.Builder dataBuilder = new AdvertiseData.Builder();
    dataBuilder.addManufacturerData(0x004C, payload); // 0x004c is for Apple inc.
    AdvertiseSettings.Builder settingsBuilder = new AdvertiseSettings.Builder();

    settingsBuilder.setAdvertiseMode(AdvertiseSettings.ADVERTISE_MODE_LOW_LATENCY);
    settingsBuilder.setTxPowerLevel(AdvertiseSettings.ADVERTISE_TX_POWER_HIGH);
    settingsBuilder.setConnectable(false);

    mAdvertiser.startAdvertising(settingsBuilder.build(), dataBuilder.build(), this);

Platzieren Sie Ihren UUID Minor Mayor an diesen Stellen in Nutzlast, belassen Sie jedoch die ersten zwei Bytes, wie sie sind.

0
Zbigniew Mazur