2010-08-10 11 views
21

आईडी this example में ब्लूटूथ को सक्षम करना पसंद है।एक सेवा से StartActivityForResult

हालांकि मेरी कक्षा एक गतिविधि नहीं है लेकिन एक सेवा है और इसलिए मैं startActivityForResult को कॉल नहीं कर सकता। इस समस्या का समाधान किस प्रकार से किया जा सकता है?। मैं जानता हूँ कि वहाँ अन्य प्रश्न ऐसे ही

use startActivityForResult from non-activity

उत्तर दिया गया है, लेकिन यह मेरी समस्या का समाधान नहीं करता क्योंकि मेरे आवेदन सेवा और कुछ नहीं होते हैं।

उत्तर

14

दुर्भाग्य से आप ऐसा नहीं कर सकते हैं।

एकमात्र समाधान जो मैंने पाया (हैक) पहले डायलॉग शैली के साथ Activity खोलना है और फिर वहां कॉल करें।

+0

ठीक है तो मैं प्रसारण रिसीवर का उपयोग करने की कोशिश की रजिस्टर करने के लिए है। हालांकि, जब राज्य बदल गया तो मैं केवल इरादों को पकड़ सकता हूं, लेकिन यदि ब्लूटूथ अक्षम है और मैं इसे निष्क्रिय करना चाहता हूं, तो राज्य में बदलाव नहीं होता है और मुझे कभी सूचित नहीं किया जाता है ... – RoflcoptrException

+0

क्षमा करें, मुझे समझ में नहीं आता तुम क्या कह रहे हो। क्या आप फिर से समझा सकते हैं? – Macarse

+0

चूंकि मैं startActivityForResult() का उपयोग नहीं कर सकता, इसलिए मैंने ब्लूटूथ स्थिति बदलने पर ईवेंट को पकड़ने के लिए ब्रॉडकास्ट रिसीवर का उपयोग करने का प्रयास किया। दुर्भाग्य से ब्लूटूथ स्थिति केवल तभी बदलती है जब उदा। ब्लूटूथ सक्षम नहीं है और उपयोगकर्ता इसे सक्षम करने के लिए हाँ पर क्लिक करता है। फिर मेरे प्रसारण रिसीवर को सूचित किया जाता है। लेकिन यदि ब्लूटूथ सक्षम नहीं है और उपयोगकर्ता कोई क्लिक नहीं करता है, तो ब्लूटूथ स्थिति नहीं बदली है और इसलिए मेरा प्रसारण रिसीवर अधिसूचित नहीं है। – RoflcoptrException

11

मुझे पता है कि यह एक पुराना सवाल है, लेकिन मैंने एक समान चुनौती में भाग लिया है, और मेरा समाधान एंड्रॉइड के साथ एक गतिविधि बनाना था: थीम = "@ एंड्रॉइड: स्टाइल/थीम.नहीं डिस्प्ले", और फिर स्टार्ट एक्टिविटीफॉर रिसेट() उसमें से। यह एक अदृश्य गतिविधि बनाता है जो दोनों डेटा लिखने से पहले और फिर खुद को खत्म करने से पहले इरादे का अनुरोध और प्राप्त कर सकता है।

+2

"@android: style/Theme.NoDisplay" से बहुत सावधान रहें ... मैंने पाया कि startActivityForResult() और संवाद दिखाए जाने के बीच 5 सेकंड की देरी जोड़ा गया। "@android: शैली/थीम पर स्विचिंग। ट्रांसस्क्लेंट। नॉट टिटलेबार। फुलस्क्रीन" देरी दूर हो गई। अन्यथा, यह मेरे लिए काम किया है। – TrevorWiley

0

मुझे लगता है कि समाधान आपकी सेवा से गतिविधि शुरू तो सेवा करने के लिए गतिविधि बाँध है और एक कॉलबैक

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