परिभाषा:
मेरा गैर-एंड्रॉइड डिवाइस (एनएडी) एक ब्लूटूथ डिवाइस है जो लूप इसका नाम 60 से 0 तक और एक असीम फैशन में रीसेट करता है।
उद्देश्य: मैं क्या करने की कोशिश कर रहा हूं, मेरे एंड्रॉइड डिवाइस को जितना संभव हो उतना संभव है कि यह उलटी गिनती का पता लगा सके और अलार्म शुरू किया जा सके संभव के रूप में एनएडी काउंटर के करीब।
मैं अपने डिवाइस के मूल ब्लूटूथएडैप्टर को शुरू करने के लिए शुरू कर रहा हूं () मैन्युअल रूप से ऑनस्क्रीन बटन पर फंक्शन टाइप करके और टॉस्ट्स पर नज़र रखने के द्वारा मैं अपने ब्रॉडकास्ट रिसीवर के माध्यम से सेट करता हूं, जो ऑनस्क्रीन टेक्स्टएव्यू अपडेट करता है, जो मुझे मेरी डिवाइस को रीयल-टाइम में प्राप्त कर रहा है यह मॉनिटर करने में सक्षम बनाता है
आवश्यकता: सिस्टम & amp; संसाधन दक्षता इस संदर्भ में एक चिंता का विषय नहीं है
समस्या:। (भाग 1 और कोड में भाग 2 के लिए पर नज़र रखें) मुझे यकीन है कि कैसे fetchUuidsWithSdp (का उपयोग नहीं कर रहा हूँ) मुझे मदद कर रहा है के बाद से TextView यह अद्यतन करने है खाली रहता है और TextView EXTRA_NAME कार्रवाई ACTION_NAME_CHANGED लौटने के इरादे से अतिरिक्त की आबादी हो रही कैश्ड, आरंभिक खोज का नाम है (यानी। अपने आवेदन आरंभिक खोज के बाद एक नाम पढ़ने नहीं है)।
मेरे कोड के नीचे
पाया जा सकता हैकिसी भी नौसिखिया गलतियों के लिए क्षमा करें, मैं अपना सर्वश्रेष्ठ कोशिश कर रहा हूँ:)
सार्वजनिक वर्ग BTBroadcastReceiver फैली BroadcastReceiver {@ रिसाइव पर सार्वजनिक शून्य को ओवरराइड करें (प्रसंग संदर्भ, आशय का इरादा) {// ब्रॉडकास्ट इंटेंट स्ट्रिंग एक्शन = इंटेंट। गेट एक्शन () से एक्शन नेम खींचें; अगर (BluetoothAdapter.ACTION_DISCOVERY_STARTED.equals (कार्रवाई)) {sToaster ( "StartedD"); // शो टोस्ट कि डिस्कवरी शुरू कर दिया है} else if (BluetoothAdapter.ACTION_DISCOVERY_FINISHED.equals (कार्रवाई)) {sToaster ( "EndedD"); // शो के टोस्ट को दिखाता है / * के अंत में संकेत मिलता है (यदि नहीं) {mBTAdapter.startDiscovery (); } * /} और यदि (ब्लूटूथड्यूविस। एक्शन_फॉउड.एक्वायल्स (एक्शन)) {/ / जब एक डिवाइस ब्लूटूथ डिवाइस पाया जाता है = intent.getParcelableExtra (BluetoothDevice.EXTRA_DEVICE); // यकीन है कि यह वास्तव में मैक पता की जाँच करके मेरी NAD डिवाइस है बनाने के अगर (device.getAddress () बराबर (MACAddress)।) {अगर (notfound) {// स्क्रीन sToaster ( "पाया डिवाइस") पर शो डिवाइस का नाम; Notfound = false; एनएडी = डिवाइस; NameShower.setText (device.getName ()); } Else {// अगर यह दूसरी बार डिवाइस पाया जाता है}} है कुछ नहीं कर} else if (BluetoothDevice.ACTION_NAME_CHANGED.equals (कार्रवाई)) {// नाम BluetoothDevice foundDevice = intent.getParcelableExtra (BluetoothDevice.EXTRA_DEVICE) बदल दिया; // सुनिश्चित करें कि यह वास्तव में मेरे NAD डिवाइस है अगर (foundDevice.equals (NAD)) {sToaster ("नाम बदलें!"); // स्क्रीन पर दिखाना है कि नाम बदलने का इरादा / PART1 // को पुराने डिवाइस नाम की कैशिंग को रोकने के लिए रोक दिया गया है StackOverflow Article / // इस फ़ंक्शन का उपयोग करने की सलाह दी है I पूरी तरह से अभी तक समझ नहीं पा रहा / रही है I / NAD.fetchUuidsWithSdp (); // या तो टिप्पणी की गई या टिप्पणी नहीं की गई है (नाम का कोई ताज़ा नहीं) // PART2 // नीचे दिए गए दो अलग-अलग तरीके से नए नाम का प्रयोग करने की कोशिश की, न ही टेक्स्टवॉइस ऑन-स्क्रीन नेमशॉयर का निरीक्षण करके, जो प्रभावी नहीं हैं। setText (foundDevice.getName ()); EventView.setText (intent.getStringExtra (BluetoothDevice.EXTRA_NAME)); }}}}; मैंने एक ब्लूटूथ परियोजना पर काम किया है और जो मैंने अनुभव किया वो यह था कि खोज की प्रक्रिया को चाहिए। एक आशय में रहें जो पृष्ठभूमि में पंजीकृत छोड़ा जा सकता है और श्रेणी में उपकरणों की खोज करने के लिए, आपको उन्हें खोज करने के लिए BTDevice.startDiscovery () को आमंत्रित करना होगा। आम तौर पर startDiscovery () बैटरी को नालियों के जरिए लगातार चला जाता है यदि आप चाहें, तो मैं इस पोस्ट को एक स्निपेट साझा करने के लिए संपादित कर सकता हूं जिसे मैं उपकरणों के लिए स्कैन करता था। आशा है कि यह मदद करता है!
No comments:
Post a Comment