एसडीके से आरएसएसआई प्राप्त करने का यही एकमात्र तरीका है। यह थोड़ा असुविधाजनक है, क्योंकि यह उपयोगी नहीं है अगर आप केवल युग्मित डिवाइस के सिग्नल की ताकत की निगरानी करना चाहते हैं।
हालांकि एक तरीका है, लेकिन एसडीके से बाहर है। आप एंड्रॉइड (और लगभग किसी भी लिनक्स सिस्टम) में अंतर्निहित ब्लूटूथ ढांचे, Bluez API द्वारा प्रदान किए गए कार्यों को मूल एपीआई (एनडीके के माध्यम से) का उपयोग कर सकते हैं। प्रश्न में कार्य hci_read_rssi()
libbluetooth.so
(ब्लूज़ स्टैक का हिस्सा) द्वारा प्रदान किया गया है। इसका उपयोग करने के तरीके सीखने के लिए, आप Hcidump tool sources (जो ब्लूज़ के साथ आता है) पर एक नज़र डालें। आप अपने फ़ंक्शन में जेएनआई रैपर कोड लिख सकते हैं, ताकि आप युग्मित डिवाइस की सिग्नल शक्ति प्राप्त कर सकें।
इस पद्धति का उपयोग करने के दो कमियां हैं:
- RSSI मापने के लिए आप पहले रिमोट डिवाइस से कनेक्ट करना होगा, कम से कम निम्न स्तर पर (कोई प्रमाणीकरण इस कनेक्शन के लिए आवश्यकता होती है) और जारी करने के बाद कनेक्शन
hci_read_rssi()
पर कॉल करना। यह बीकन से आरएसएसआई को मापने से धीमा है, क्योंकि अन्य वायरलेस संचार का मतलब है (जीएसएम या वाईफ़ाई)
- रिमोट ब्लूटूथ डिवाइस के लिए निम्न स्तर कनेक्शन एंड्रॉइड सुपरसुर अधिकारों पर आवश्यक है। तो लिखने और एप्लिकेशन के बारे में भूल जाएं जो गैर हैक किए गए फोन पर चलाया जा सकता है (वे आमतौर पर रूट रूट के साथ आते हैं, और कुछ मोटोरोला Droid/मील का पत्थर भी शून्य वारंटी के रूप में आते हैं यदि आप इसे हासिल करने का प्रयास करते हैं)।
स्रोत
2010-03-02 08:03:02
एंड्रॉयड परियोजना है, जो इस मुद्दे को संबोधित पर बग ट्रैकर में प्रवेश नहीं है। यदि आप इस मुद्दे पर कार्यवाही के लिए सदस्यता लेना चाहते हैं (और धक्का) तो आपको https://code.google.com/p/android/issues/detail?can=1&start=0&num=100&q=rssi&colspec=ID%20Type%20Status तारांकित करना चाहिए % 20 ऑनर% 20 सारांश% 20 स्टर्स और ग्रुपबी = और सॉर्ट = और आईडी = 6707 – Martze