2013-12-09 9 views
6

मैंने अपनी छोटी बीएलई स्कैनिंग सेवा लिखी है जो हर 3-5 सेकंड में अलार्म के माध्यम से ट्रिगर होती है। यह इसके चारों ओर तेह बीकन प्राप्त करने के लिए 1.1 सेकंड तक स्कैन करता है और फिर आरएसएसआई सिग्नल को किसी न किसी निकटता में बदल देता है।iBeacon पृष्ठभूमि स्कैनिंग

अब मैं रेडियस नेटवर्क एंड्रॉइड आईबीकॉन सेवा पर विचार कर रहा हूं, लेकिन मुझे आश्चर्य है कि मैं एक ही पृष्ठभूमि स्कैनिंग को कैसे महसूस कर सकता हूं।

उदाहरण: मैं चाहता हूं कि बीकन स्कैनिंग पृष्ठभूमि में अंत तक चलने के लिए स्कैन करें और प्रसारित बीकन के साथ मैं क्या करता हूं यह तय करने के लिए एक प्रसारण रिसीवर में इराद प्राप्त करें।

क्या सोम उदाहरण हैं और क्या अनुमान है कि यह कितनी बैटरी खपत करता है?

उत्तर

8

त्रिज्या नेटवर्क Android iBeacon Library बिल्कुल यही करता है। पृष्ठभूमि में इसे चलाने के लिए आपको बस इतना करना है कि लंबे जीवन चक्र वाले IBeaconManager को बांधें। यह एक कस्टम android.app.Application ऑब्जेक्ट, या स्वयं की एक सेवा हो सकती है। चूंकि आपने अपने ऐप के लिए अपनी सेवा पहले से ही लिखी है, इसलिए आप आसानी से IBeaconManager उस सेवा में बाध्य कर सकते हैं, और जब तक सेवा चलती है तब तक यह पृष्ठभूमि में सक्रिय रहेगी। यदि आप चाहें तो प्रसारण उद्देश्यों को भेजने के लिए आप अपनी सेवा का उपयोग भी कर सकते हैं, लेकिन अधिकांश उपयोग मामलों के लिए यह संभवतः आवश्यक नहीं है।

बैटरी उपयोग के लिए, लाइब्रेरी के reference application में लाइब्रेरी पर पृष्ठभूमि मोड को सेट करने का एक उदाहरण है, इसलिए बैटरी को बचाने से स्कैन कम होता है। कि संदर्भ अनुप्रयोग में उचित कोड यहाँ है:

@Override 
    protected void onPause() { 
      super.onPause(); 
      if (iBeaconManager.isBound(this)) iBeaconManager.setBackgroundMode(this, true);      
    } 
    @Override 
    protected void onResume() { 
      super.onResume(); 
      if (iBeaconManager.isBound(this)) iBeaconManager.setBackgroundMode(this, false);      
    } 

सच करने के लिए पृष्ठभूमि मोड सेट करना ब्लूटूथ केवल एक बार बहुत 5 मिनट होने के लिए स्कैन करता है कम कर देता है - क्या आईओएस करता है करने के लिए कुछ इसी तरह। नेक्सस 4 पर परीक्षणों के आधार पर, यह फोन की कुल बैटरी खपत 95 एमए से 55 एमए तक कम कर देता है (दोनों संख्याओं में कुल ऑपरेटिंग सिस्टम नाली शामिल है।)

पूर्ण प्रकटीकरण: मैं त्रिज्या नेटवर्क के लिए काम करता हूं और प्राथमिक लेखक हूं एंड्रॉइड iBeaconLibrary।

+0

हाय डेविड, आपकी टिप्पणियों के लिए कई thx। मेरे विशिष्ट डेमो के लिए मैं अब सेवा और अलार्म के साथ गया, लेकिन मैं पूरी तरह से आपके एपीआई के साथ जाऊंगा। –

+0

मुझे आईबीकॉन क्लास और स्कैनफ्रॉम रिकॉर्ड विधि बहुत उपयोगी थी। एक बात जिसे मैं समझ नहीं पा रहा हूं वह है कि लाइन 216 क्या कर रही है। स्पष्ट रूप से एक अनुमान बीकन का पता चला है, लेकिन फिर यह लगभग "खाली" आईबीकॉन कक्षा वापस कर देगा। क्या यह विरासत कोड है? मुझे अनुमान से आईबीकॉन प्राप्त हुए और यह काम करता है। बीटीडब्ल्यू मुझे संपर्क में रहना अच्छा लगेगा और आपकी कंपनियों के बीकन और सेवकों को भी आजमाएं। हम सीधे कैसे कनेक्ट कर सकते हैं? –

+0

अपने डेमो के बारे में समझा। यह एक ओपन सोर्स प्रोजेक्ट है इसलिए मैं हमेशा इनपुट और सहयोगियों की तलाश में हूं। शायद हम – davidgyoung

संबंधित मुद्दे