2017-04-21 3 views
2

Ich entwickle derzeit eine Android App auf Android Studio zu erkennen und zu verwenden iBeacons. Der Teil, wo ich den Beacon erkennen und seine Parameter bekommen muss, ist fertig, aber ich habe Probleme, den Wert dieser Parameter für einen bestimmten iBeacon mit den APIs zu ändern, die auf dem Android-System verfügbar sind. Ich habe gesehen, dass verschiedene Funktionen wie setId1 (UUID), setId2 (Major), setId3 (Minor) in der Beacon.Builder() - Klasse verwendet werden können, um die Werte zu ändern, aber ich bin ein wenig verloren zu wissen, wie man verwendet Dies funktioniert auf einem bestimmten Beacon.Wie ändere ich den Wert von iBeacon Parameter (UUID, Major, Minor, TxPower) dank der SDK auf Android

Dies ist die Definition meiner Klasse, die ich für den Beacon erstellt haben:

class IdBeacon { 
    private String UUID; 
    private String Major; 
    private String Minor; 
    private String Distance; 
    private String RSSI; 
    private String TxPower; 

    public IdBeacon (String UUID, String Major, String Minor, String Distance, String RSSI, String TxPower){ 
     this.UUID = UUID; 
     this.Major = Major; 
     this.Minor = Minor; 
     this.Distance = Distance; 
     this.RSSI = RSSI; 
     this.TxPower = TxPower; 
    } 

    public String getUUID() { return UUID; } 
    public void setUUID(String UUID) { this.UUID = UUID; } 

    public String getMajor() { return Major; } 
    public void setMajor(String major) { Major = major; } 

    public String getMinor() { return Minor; } 
    public void setMinor(String minor) { Minor = minor; } 

    public String getDistance() { return Distance; } 
    public void setDistance(String distance) { Distance = distance } 

    public String getRSSI() { return RSSI; } 
    public void setRSSI(String RSSI) { this.RSSI = RSSI; } 

    public String getTxPower() { return TxPower; } 
    public void setTxPower(String txPower) { this.TxPower = txPower; } 
} 

Dies ist der Code die verschiedenen Werte der IBeacon-Parameter zu erhalten:

String distance = String.valueOf(beacons.iterator().next().getDistance()); 
String Uuid = String.valueOf(beacons.iterator().next().getId1()); 
String major = String.valueOf(beacons.iterator().next().getId2()); 
String minor = String.valueOf(beacons.iterator().next().getId3()); 
String Rssi = String.valueOf(beacons.iterator().next().getRssi()); 
String TxPower = String.valueOf(beacons.iterator().next().getTxPower()); 

arrayIdBeacon.clear(); 
arrayIdBeacon.add(new IdBeacon(Uuid,major,minor,distance,Rssi,TxPower)); 

und dies ist die Erklärung meines ArrayAdapter, um mit der Anzeige meiner iBeacon-Parameter für meine Ansicht umzugehen:

Antwort

0

Die Klasse Beacon.Builder() in der Android Beacon Library wird zum Erstellen neuer Beacon-Objekte verwendet, um eine Beacon-Werbung vom Android-Gerät selbst zu übertragen.

Es gibt keine Unterstützung in der Bibliothek zum Ändern externer Hardwarebakenkonfigurationen, z. B. Ändern des Minor. Dies ist der Fall, weil es hierfür keinen Standardmechanismus gibt. Jeder Beacon-Hardware-Hersteller hat sein eigenes System zum Ändern der Konfiguration, von denen viele proprietär und nicht dokumentiert sind.

Fazit: Um Hardware Beacon-Konfiguration programmgesteuert zu ändern, benötigen Sie ein bestimmtes SDK von Ihrem Beacon-Anbieter.

Verwandte Themen