मैं वाईफ़ाई कनेक्शन में सिग्नल शक्ति परिवर्तन का पता लगाने की कोशिश कर रहा हूं। मैं उलझन में हूं कि मुझे अपने ब्रॉडकास्ट रिसीवर में किस विधि का उपयोग करना चाहिए। GetConnectionInfo() और getScanResults() का उपयोग करने के बीच क्या अंतर है - जिससे मैं आरएसएसआई मान प्राप्त करने के लिए प्रासंगिक विधि का उपयोग कर सकता हूं?सिग्नल शक्ति परिवर्तनों का पता लगाने के लिए getConnectionInfo() और getScanResults() के बीच अंतर
उदाहरण के लिए: यदि मैं getConnectionInfo() का उपयोग करता हूं, तो बाद में मैं getRssi() का उपयोग करता हूं। या मैं getScanResults() और "स्तर" संपत्ति का उपयोग कर सकता हूं।
मैं टोस्ट का उपयोग करके अपने मूल्य प्रदर्शित करता हूं और यह हमेशा समान मान नहीं दिखाता है। जब वाईफाई कॉन खो जाता है, getConnectionInfo()। GetRssi() -200 दिखाता है, जबकि परिणाम .level अभी भी अपना पिछला मान दिखाता है।
कोई विचार? धन्यवाद!
String netSSID = wifi.wifiMgr.getConnectionInfo().getSSID();
int netRSSI = wifi.wifiMgr.getConnectionInfo().getRssi();
List<ScanResult> results = wifi.wifiMgr.getScanResults();
for (ScanResult result : results) {
if (result.SSID.equalsIgnoreCase(netSSID)) {
anothernetRSSI = result.level;
}
}
* कृपया कोड स्निपेट देखें * वहां मैं वर्तमान कनेक्शन से आरएसएसआई मान का पता लगाने के लिए उन दो विधियों का उपयोग करता हूं। और हाँ, मैं startScan() का उपयोग करता हूं। ठीक है, तो इस मामले में getConnectionInfo() का उपयोग करने का अधिकार नहीं है। GetRssi()? आरएसएसआई_CHANGED_ACTION प्रसारण भेजने के बारे में क्या और फिर नया आरएसएसआई मूल्य प्राप्त करने के लिए intent.getIntExtra (WifiManager.EXTRA_NEW_RSSI, 0) का उपयोग करें? क्या यह भी SCAN_RESULTS_AVAILABLE_ACTION के समान मामला है, जो किसी भी पहुंच बिंदु पुनर्प्राप्त करता है? तो यह एक और एपी के आरएसएसआई मूल्य वापस दे सकता है जब तक कि मूल्य पिछले एक से अलग है? – springrolls
एक पुस्तक के अनुसार मैंने अभी पढ़ा है, आरएसएसआई_CHANGED_ACTION कनेक्टेड वाईफाई नेटवर्क की वर्तमान आरएसएसआई देता है। तो अब मेरी समझ में, हम आरएसएसआई परिवर्तनों को प्रदर्शित करने के लिए तीन तरीकों में से एक का उपयोग कर सकते हैं। लेकिन प्रत्येक के लिए विशिष्ट स्थिति है: 1. यदि आप SCAN_RESULTS_AVAILABLE_ACTION (और इस प्रकार, startScan() का उपयोग करते हैं), getScanResults() का उपयोग करें और उस नेटवर्क के लिए "स्तर" प्रॉपर्टी पुनर्प्राप्त करें जिसे आप वर्तमान में कनेक्ट कर रहे हैं। 2. getConnectionInfo() का उपयोग करें। GetRssi() प्रत्येक एक्स सेकंड अपडेट किया गया। 3. या यदि आप आरएसएसआई_CHANGED_ACTION को प्रसारित करते हैं, तो EXTRA_NEW_RSSI का उपयोग करें - जो मेरे मामले में, आरएसएसआई परिवर्तनों का पता लगाने के लिए बेहतर सेवा करनी चाहिए। – springrolls