2012-11-01 18 views
5

मेरे एप्लिकेशन में कार्यक्षमता है जो सर्वर पर कुछ सामग्री भेजती है और (ज़रूरत) इसे फेसबुक पर पोस्ट करती है। यह भेजने के लिए सेवा का उपयोग करता है (स्टोर डेटा के लिए मैं स्क्लाइट का उपयोग कर रहा हूं)। क्या सेवा सत्र से फेसबुक सत्र e.t.c को संभालना संभव है? मुझे इसकी आवश्यकता है क्योंकि समय जब डीबी में सामग्री संग्रहित की जाएगी और समय भेजना अलग हो सकता है (कनेक्शन बहुत लंबे समय तक खो जाएगा और कनेक्शन के बाद कनेक्शन भेजना होगा, लेकिन केवल मेरे आवेदन की सेवा भेजना सक्रिय होगा पहर)। मुझे इस मामले के लिए कोई समाधान नहीं मिल रहा है (और अच्छा समाधान अच्छा होगा)। कृपया मदद करे।सेवा से फेसबुक एंड्रॉइड एसडीके का उपयोग

उत्तर

4

उपयोगकर्ताओं को स्पष्ट रूप से एप्लिकेशन को अनुमतियां देनी होंगी, और एंड्रॉइड सेवाएं Activity.startActivityForResult() का समर्थन नहीं करती हैं, इसलिए किसी सत्र से खोलना या सेवा से पुनः प्राधिकरण के माध्यम से नई अनुमतियां जोड़ना संभव नहीं है।

हालांकि, यदि आप अपने ऐप की गतिविधियों में से एक में सत्र खोलते/पुनः प्राधिकृत करते हैं, तो सत्र की स्थिति डिफ़ॉल्ट रूप से साझा किए गए संदर्भों में सहेजी जाती है। यदि ऐसा होने के बाद कोई सेवा सत्र बनाता है, तो यह सत्रस्टेट में समाप्त हो जाएगा। CREATED_TOKEN_LOADED। यदि सत्र.getState() CREATED_TOKEN_LOADED है, तो सत्र को UI के साथForRead() खोलने में सक्षम होने की गारंटी है, और यह शून्य गतिविधि को पारित करने के लिए कानूनी है। सत्र में सभी अनुमतियां दी जाएंगी जो आपकी गतिविधि द्वारा सहेजी गई थीं।

यह सब आसान बनाने के लिए, आपकी सेवा सिर्फ कॉल कर सकते हैं:

Session session = Session.openActiveSession(this); 

इस कॉल अशक्त रिटर्न यदि कोई भी मान्य टोकन SharedPreferences में था।

यदि आपके ऐप यूआई में एक सेटिंग क्षेत्र है, तो पहले स्थान पर संग्रहीत टोकन प्राप्त करने का एक आसान तरीका है लॉग इनफ्रैगमेंट को सेटिंग पैनलों में से एक के रूप में शामिल करना। यह आपके उपयोगकर्ताओं को लॉग इन/लॉग आउट करने देगा, और सत्र स्थिति को सहेजना चाहिए ताकि आपकी सेवा इसे उसी ऐप में ले जा सके।

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