2015-01-20 5 views
7

में एस्टिमोट एसडीके का उपयोग कर बीकन का अनोखा आईडी कैसे प्राप्त करें मैं एक एप्लीकेशन विकसित कर रहा हूं जिसमें मैं बीकन का उपयोग कर रहा हूं। मैं इसके लिए संबंधित अनुमानित एसडीके से गुजर चुका हूं। अब बात यह है कि मुझे किसी विशेष बीकन के अद्वितीय आईडी को जानने की आवश्यकता है। मान लीजिए कि मेरे पास 3 बीकन हैं और सभी डिवाइस की रेंज में मौजूद हैं। अब मैं बीकन के अद्वितीय आईडी के आधार पर विभिन्न कार्यों को निष्पादित करना चाहता हूं। इसके लिए मुझे प्रत्येक बीकन के अद्वितीय आईडी को जानने की जरूरत है। वर्तमान में मैं एक बीकन के लिए यूयूआईडी दे रहा हूं और सिर्फ यह जांच रहा हूं कि डिवाइस के क्षेत्र में या नहीं। मेरे कोड इस प्रकार है: -एंड्रॉइड

private static final String ESTIMOTE_PROXIMITY_UUID = "XYZ"; 
private static final Region ALL_ESTIMOTE_BEACONS = new Region("regionId",ESTIMOTE_PROXIMITY_UUID, null, null); 

beaconManager.setMonitoringListener(new MonitoringListener() { 

      @Override 
      public void onExitedRegion(Region region) { 
      //Region Exited 
      } 

      @Override 
      public void onEnteredRegion(Region arg0, List<Beacon> arg1) { 
       // TODO Auto-generated method stub 
       //Do something ... 
      } 
     }); 

अब मैं इतना है कि मैं आईडी के आधार पर निर्णय ले सकते हैं प्रोग्राम के रूप में बीकन की अनन्य आईडी प्राप्त करने की आवश्यकता। कृपया इसे हल करने में मेरी सहायता करें। कोई मदद सराहनीय होगी। धन्यवाद।

+0

मैं एक ही समस्या का सामना कर रहा है । क्या आपको एक समाधान मिला? – Roadblock

उत्तर

6

प्रत्येक बीकन में ID है।
ID 20 बाइट लंबा है और तीन वर्गों में बांटा गया है:

  • proximityUUID (16 बाइट्स)

  • major संख्या (2 बाइट्स)

  • minor संख्या (2 बाइट्स)।

विशेष बीकन की पहचान करने के लिए उनका उपयोग कैसे करें?

सबसे पहले, आपको पता होना चाहिए कि आपके आस-पास बहुत सारे बीकन हो सकते हैं। ये बीकन अन्य विक्रेताओं, कंपनियों या डेवलपर्स से आ सकते हैं, इसलिए आप उन्हें फ़िल्टर करना चाहते हैं।
बीकन फ़िल्टर करने के लिए, आपको proximityUUID का उपयोग आप या आपकी कंपनी द्वारा प्रदान किए गए समूह बीकन के लिए करना चाहिए। अपने सभी बीकन को उसी proximityUUID दें।
उसके बाद आप निगरानी और लेकर द्वारा शुरू कर सकते हैं:

private final Region MY_BEACONS = new Region("MY_BEACONS","YOUR_PROXIMITY_UUID", null, null); 

beaconManager.startMonitoring(MY_BEACONS); 
beaconManager.startRanging(MY_BEACONS); 

अब, अपने श्रोताओं में आप जब अपने बीकन पड़ोस में हो जाएगा सूचित किया जाएगा।

अब मान लीजिए कि आप शहर में सिनेमाघरों के लिए एक ऐप लिख रहे हैं। प्रत्येक सिनेमा में पर दो अलग-अलग बीकन होते हैं अलग-अलग क्रियाएं करते हैं। सिनेमाघरों के लिए बीकन के बीच भेद कैसे करें और एक specyfic सिनेमा में एक विशेष बीकन के लिए यह कैसे करें?
major और minor फ़ील्ड का उपयोग करें। एक विशेष सिनेमा में सभी बीकन की पहचान के लिए

  • उपयोग major, एक विशेष सिनेमा में विशिष्ट बीकन की पहचान के लिए
  • उपयोग minor: उदाहरण के लिए।

जब आप इस तरह से बीकन के लिए आईडी बनाते हैं, आप विशिष्ट बीकन हो और प्रदर्शन कर सकते हैं कार्रवाई:

private final int SCARY_CINEMA_ID = 1111; 
private final int SCARY_CINEMA_BEACON_1 = 1; 
private final int SCARY_CINEMA_BEACON_2 = 2; 
private final int COMEDY_CINEMA_ID = 2222; 
private final int COMEDY_CINEMA_BEACON_1 = 1; 
private final int COMEDY_CINEMA_BEACON_2 = 2; 


@Override 
public void onEnteredRegion(Region region, List<Beacon> beacons) { 
    for(Beacon beacon : beacons){ 
     if(beacon.getMajor() == SCARY_CINEMA_ID){ 
      if(beacon.getMinor == SCARY_CINEMA_BEACON_1){ 
       //do something for this beacon 
      } else{ 
       //do something for second beacon in cinema 
      } 
     } else if(beacon.getMajor == COMEDY_CINEMA_ID){ 
      ... 
     } 
} 

आशा है, कि तुम में मदद मिलेगी :)

+0

हाय mklimek, उत्तर के लिए धन्यवाद। मैं मेजर और माइनर चीज से स्पष्ट नहीं हूं, यहां "SCARY_CINEMA_ID" और "SCARY_CINEMA_BEACON_1" भी क्या है। क्या आप थोड़ा और समझा सकते हैं। –

+1

@ सलमानखन 'प्रमुख' और 'मामूली' एसिटमोटे बीकन के लिए मानक फ़ील्ड हैं। हम उन्हें बीकन की पहचान करने के लिए ids के रूप में उपयोग कर सकते हैं। SCARY_CINEMA_ID मनमाने ढंग से सिनेमा के लिए 'मामूली' चुना गया है उदाहरण के लिए 1111. उदाहरण के लिए अन्य सिनेमा के लिए COMEDY_CINEMA_ID दूसरा 'मामूली' है उदाहरण के लिए 2222. यदि आपके पास दो बीकन हैं और आप इसे SCARY_CINEMA और 'proximityUUID' =" beaconsForCinemas "से जोड़ना चाहते हैं, तो आपके पास पहले बीकन के लिए मूल्य निर्धारित करने के लिए: uuuid = "beaconsForCinemas", प्रमुख = 1111, मामूली = 1, इस सिनेमा में दूसरे बीकन के लिए इसका उपयोग करें, लेकिन मामूली = 2 – mklimek

+0

@ सलमानखान http://estimote.com/api/getting -स्टार्ट/intro-to-beacons.html – mklimek

0

इस आलेख में आया जब मैं इसे आजमा रहा था, तो यह आपके लिए कुछ मदद की जा सकती है। https://community.estimote.com/hc/en-us/articles/200868188-How-do-I-modify-UUID-major-and-minor-values-

+0

अरे स्वर्ण, उत्तर के लिए धन्यवाद लेकिन मैं इसे एंड्रॉइड के लिए खोज रहा हूं। एंड्रॉइड में इसे हल करने का कोई तरीका? –

+0

आपको शायद अनुमान लगाने के लिए सीधे पूछना चाहिए, अधिकांश सुविधाएं एंड्रॉइड के लिए अभी तक उपलब्ध नहीं हैं। मदद के लिए – Mal

+0

ठीक है धन्यवाद। –