2016-07-31 10 views
2

これはタイプのビーコンEddystoneを選択する唯一の方法ですか?AltBeacon:ビーコンを選択する簡単な方法Eddystone

 if (b.getServiceUuid() == 0xfeaa) { 
     if (b.getBeaconTypeCode() == 0x00) { 
      // Eddystone-UID 
     } else if (b.getBeaconTypeCode() == 0x10) { 
      // Eddystone-URL 
     } else if (b.getBeaconTypeCode() == 0x20) { 
      // Eddystone-TLM 
     } 
    } else { 
     // AltBeacon... 
    } 
+0

serviceUUIDはあなたにすべてのビーコンユーザーメジャーを与えます –

答えて

2

はい!Android Beacon Libraryバージョン2.8以降では、これはずっと簡単です。オプションの文字列識別子が各BeaconParserに追加されました。この識別子は、そのパーサーを使用して一致するすべてのBeaconインスタンスに渡されるため、どのビーコンタイプがisかを簡単に判別できます。

beaconManager.getBeaconParsers().add(new BeaconParser("Eddystone-UID") 
    .setBeaconLayout(BeaconParser.EDDYSTONE_UID_LAYOUT)); 

... 

if (beacon.getParserIdentifier().equals("Eddystone-UID")) { 
    // This is Eddystone-UID 
} 

はちょうどあなたのBeaconParserを構築する際に、識別子を設定してください:

は、ここでそれがどのように機能するかの例です。

これは正確にあなたの質問で指摘されているビーコンの種類を決定するために追加されました。

0

altbeaconライブラリを確認します。http://altbeacon.org

ビーコンがこのようにif文を使用して区別するために:ビーコンが範囲内にある一度

if (String.valueOf(beac.getId2()).trim().equals("13191"))//Getting the major of the beacon 
          { 
           //do something 
          } 

コードウィッヒは、UIスレッドで実行されます。

public void Run(View view){ 
     beaconManager.addRangeNotifier(new RangeNotifier() { 
      @Override 
      public void didRangeBeaconsInRegion(final Collection<Beacon> collection, Region region) { 

       runOnUiThread(new Runnable() { 
        @Override 
        public void run() { 

         for (Beacon beac : collection) { //LOOP searches for all the beacons within the range... 
          //beac.getId1()// 
          beaconUUID = beac.getId2().toString(); //Major 
          //beac.getId3()//Minor 
          udaljenost1 = Math.round(beac.getDistance() * 100.0)/100.0; //dobivanje integera iz decimala, zaokruzivanje na cjeli broj 

          if (String.valueOf(beac.getId2()).trim().equals("13191"))//Getting the major of the beacon 
          { 
           //do something 
          } 
         } 
        } 
       }); 


      } 
     }); 

    } 
関連する問題