Kann ein Android-Gerät als iBeacon fungieren und herausfinden, wann andere Android-Geräte in seine Reichweite kommen? Müssen auf diesen anderen Android-Geräten Bluetooth aktiviert sein?
Wenn ein Kunde in meinen Shop kommt und 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 unseren Shop besuchen. Aber wenn meine App nicht installiert ist, funktioniert das iBeacon-Konzept?
android
bluetooth
bluetooth-lowenergy
ibeacon
android-bluetooth
Hardik Joshi
quelle
quelle
Antworten:
JA Dies ist unter Android 5+ möglich. In der Android Beacon Library finden Sie Open-Source-Code für die Übertragung als Beacon . In der Beacon Scope- App im Google Play Store gibt es auch eine Vollversion eines Beacon-Senders .
Hier ist 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);
Sie können auch als Beacon auf gerooteten Android 4.4.3-Geräten übertragen , es ist jedoch eine App mit Systemberechtigungen erforderlich.
Android 4.3-Geräte mit BluetoothLE können iBeacons sehen, fungieren jedoch nicht als iBeacons, da Android 4.3 den Peripheriemodus nicht unterstützt. Samsung Android-Geräte enthalten ein separates proprietäres SDK, aber es erlaubt Geräten auch nicht, als iBeacons zu fungieren. Siehe: Samsung Android-Gerät als iBeacon bewerben lassen ) iOS-Geräte können jedoch als iBeacons fungieren.
Normalerweise sind iBeacon-Technologien nicht dafür gedacht, dass Telefone andere Telefone sehen. Sie können jedoch das tun, was Sie unter iOS vorschlagen, indem Sie eine benutzerdefinierte App erstellen, mit der Telefone als iBeacon fungieren und nach anderen iBeacons in ihrer Umgebung suchen. Dies würde es jedem mit der App ermöglichen, andere mit derselben App in der Nähe zu sehen. Für alle Telefone muss Bluetooth aktiviert sein.
Um Ihre zweite Frage zu beantworten: Ja, auf einem mobilen Gerät, sowohl Android als auch iOS, muss eine App installiert sein, um die Vorteile von iBeacons nutzen zu können. Keines der Betriebssysteme tut derzeit etwas, wenn es einen iBeacon sieht, es sei denn, eine App ist installiert, die speziell dafür programmiert ist. Kunden, die in einem Geschäft ankommen, müssen bereits eine App installiert haben, sonst können sie nicht mit iBeacons interagieren.
quelle
You can also transmit as a beacon on rooted Android 4.4.3 devices, but it requires an app installed with system privileges.
Wie kann ich das machen?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 zum Erstellen von Android als Beacon-Emitter und -Rezeptor. Hier ist ein Teil des Codes, der für Android als iBeacon funktioniert:
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
quelle
Reines Android SDK. Kein Code von Drittanbietern - 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 der Nutzlast, aber lassen Sie die ersten zwei Bytes unverändert.
quelle