2010-08-26 14 views
10

मैं पिछले कुछ दिनों में एंड्रॉइड एसडीके के साथ प्रयोग कर रहा हूं, स्टोर के लिए ऐप लिखने की तत्परता में, हालांकि मैंने कुछ समस्याएं पूरी की हैं ।एंड्रॉइड में प्रोग्राम जोड़ें 'खाता जोड़ें' गतिविधि शुरू करना 2.2

जिस ऐप को मैं लिखूंगा, उसके लिए आवश्यक है कि उपयोगकर्ता के पास फोन से जुड़े Google खाते हों। एथ टोकन इत्यादि का उपयोग करना और उपयोग करना कोई समस्या नहीं थी, हालांकि मैं उस गतिविधि को दिखाने में सक्षम होना चाहूंगा जो उपयोगकर्ता मेन्यू सेटिंग्स-> खाते-> खाता जोड़ें के माध्यम से सामान्य पहुंच तक पहुंचने में सक्षम होना चाहेंगे।

अब प्रयोग के माध्यम से मैं निम्नलिखित कमांड का उपयोग करके इस गतिविधि को खोल से लॉन्च करने में सक्षम हूं।

am start -n com.google.android.gsf/.login.AccountIntroActivity 

मुझे इरादा वर्ग का उपयोग करके जावा में एक ही कार्रवाई करने में परेशानी हो रही है।

क्या कोई मुझे पहले यह बताने में सक्षम होगा कि यह जावा के माध्यम से किया जा सकता है या नहीं, और दूसरी बात यह है कि मैं इसके बारे में कैसे जा सकता हूं?

अगर मुझे सिंक सेटिंग्स स्क्रीन के लिए व्यवस्थित करना है तो मैं (यह सेटिंग्स.एक्शन_SYNC_SETTINGS मंशा के माध्यम से हासिल किया जा सकता है), हालांकि उपयोगकर्ता को सीधे आवश्यक स्क्रीन पर निर्देशित करने में सक्षम होना बहुत अच्छा होगा। बाहर ACTION_ADD_ACCOUNT

startActivity(new Intent(Settings.ACTION_ADD_ACCOUNT)); 

उत्तर

15

चेक का प्रयास करें निम्नलिखित:

Intent intent = new Intent(); 
    intent.setClassName("com.google.android.gsf", "com.google.android.gsf.login.AccountIntroActivity"); 
    context.startActivity(intent); 
+0

मेरे धन्यवाद - कि एक कदम मैं क्या हासिल करने की कोशिश कर रहा हूँ के करीब है, लेकिन हमारे जेडी स्वामी उद्धृत करने के लिए - 'यह है वह गतिविधि नहीं जिसे आप ढूंढ रहे हैं '। यह श्रृंखला में अगला कदम है जिसे मैं आमंत्रित करने की कोशिश कर रहा हूं - सेटअप विज़ार्ड का हिस्सा - वह गतिविधि जो तब दिखाई देती है जब आप 'Google' खाता प्रतीक पर क्लिक करते हैं। यदि यह असंभव है, तो मैं ACTION_ADD_ACCOUNT उत्तर के साथ रहूंगा। धन्यवाद – Seidr

+0

शायद यह असंभव है क्योंकि मैं लिंक किए गए संसाधन पर नहीं देखता हूं। और यह एकमात्र ऐसा पृष्ठ है जो सेटिंग ग्लोबल्स का वर्णन करता है। – Pentium10

+0

मुझे डर है - मुझे लगता है कि मैं उस घटक तक पहुंच की कल्पना करता हूं जिसे मैं ऊपर से कॉल कर रहा हूं, adb shell (com.google.android.gsf/.login.AccountIntroActivity) से शायद कुछ प्रतिबंधित है। – Seidr

3

+0

धन्यवाद मार्कजन - एक बार मुझे अपना एसडीके सेटअप फिर से मिलने के बाद मैं इसे देख लूंगा। – Seidr

+0

"my_auth_token" क्या यह Google खाते के लिए वैध ऑथ टोकन प्रकार है? यदि नहीं, तो क्या आप कृपया मुझे Google खाता जोड़ने के लिए वैध ऑथ टोकन प्रकार बता सकते हैं? – sdream

1

सुराग अपने शेल कमांड में है । (गूगल या अन्य खाता प्रकार)

सार्वजनिक AccountManagerFuture addAccount (स्ट्रिंग ACCOUNTTYPE, स्ट्रिंग authTokenType, String [] requiredFeatures, बंडल addAccountOptions, गतिविधि गतिविधि AccountManagerCallback कॉलबैक, हैंडलर हैंडलर) के लिए

http://developer.android.com/reference/android/accounts/AccountManager.html

2

एंड्रॉयड खाता प्रबंधक खाता जोड़ने के लिए एक API प्रदान करता है:

public static void addGoogleAccount(final Activity activity) { 
    final AccountManager accountMgr = AccountManager.get(activity); 
    accountMgr.addAccount("com.google", "my_auth_token", null, null, activity, null, null); 
} 
1

जवाब अतिरिक्त डेटा के इरादे में EXTRA_ACCOUNT_TYPES प्रदान करके उपर्युक्त प्रश्न। और मूल्य के लिए "com.google" सेट क्रम में गतिविधि सचेत करने के लिए:

public static void startAddGoogleAccountIntent(Context context){ 
Intent addAccountIntent = new Intent(android.provider.Settings.ACTION_ADD_ACCOUNT) 
.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
addAccountIntent.putExtra(Settings.EXTRA_ACCOUNT_TYPES, new String[] {"com.google"}); 
context.startActivity(addAccountIntent); } 
संबंधित मुद्दे