2012-03-23 15 views
7

This question सामान्य रूप से एंड्रॉइड उपकरणों के लिए इसकी चर्चा करता है, लेकिन यदि आप इस कोड को किंडल फायर पर चलाने का प्रयास करते हैं, तो आपको उपयोगकर्ता का नाम मिलता है। क्या ईमेल पता पाने का कोई तरीका है? हम पहले से ही पहले से भर चुके ईमेल पते के साथ एक संवाद पॉप-अप करने की उम्मीद कर रहे थे, इसलिए यदि यह सही था तो उन्हें इसे टाइप नहीं करना पड़ेगा, लेकिन ऐसा लगता है कि एकमात्र समाधान यह है कि उन्हें दोबारा टाइप करें।किंडल फायर पर, क्या उपयोगकर्ता का ईमेल पता प्राप्त करना संभव है?

संपादित करें: यहाँ कोड है कि अन्य सूत्र का सुझाव दिया है (कि Kindle Fire पर काम नहीं करता) है:

Account[] accounts = AccountManager.get(this).getAccounts(); 
for (Account account : accounts) { 
    // TODO: Check possibleEmail against an email regex or treat 
    // account.name as an email address only for certain account.type values. 
    String possibleEmail = account.name; 
    // possibleEmail is a list of account names, hopefully including the @gmail.com address. 
} 
+0

आपको इसके लिए कोई समाधान नहीं मिला है, है ना? मैं खुद को समस्या का सामना कर रहा हूं – Guardanis

+0

मुझे दुख की बात नहीं है। –

+0

बकवास, मुझे इससे डर था ... मेरा ऐप किंडल पर किसी उपयोगकर्ता द्वारा sideloaded था और केवल नियमित Androids के लिए मतलब था और इस मुद्दे में भाग गया ... मुझे लगता है कि उपयोगकर्ता के लिए पहचान करने के लिए एकमात्र समाधान मेरे लिए होगा ईमेल के अलावा किसी अन्य चीज़ से यदि यह उपलब्ध नहीं है ... – Guardanis

उत्तर

0

Kindle Fire पर, यह एक उपयोगकर्ता के ईमेल पते पाने के लिए संभव है?

क्षमा करें, लेकिन आप पूरी तरह से गलत हैं।

I Google लॉगिन संवाद से लिंक करने के लिए उपयोग किया जाता था जो कि सभी उपयोगकर्ता किंडल फायर पर मौजूद थे।

इस कोड का पालन करें:

public class AuthAcount { 
    private Context context; 

    private AccountManager mAccountManager; 

    public AuthAcount(Context context) { 
      setContext(context); 
    } 

    public Account[] getAccount() { 
      mAccountManager = AccountManager.get(context); 
      Account[] accounts = mAccountManager 
          .getAccountsByType(GoogleAuthUtil.GOOGLE_ACCOUNT_TYPE); 
      return accounts; 
    } 

    public Context getContext() { 
      return context; 
    } 

    public void setContext(Context context) { 
      this.context = context; 
    } 
} 

पी/एस: GoogleAuthUtil वर्ग का उपयोग करने के लिए, हो सकता है आप google-OAuth-ग्राहक-1.15.0-rc.jar (नवीनतम संस्करण का उपयोग करें की जरूरत है)।

0

आग उपकरणों है कि मैं मेरे पास उपलब्ध है, यह मैं क्या किया है:

final static String TYPE_GOOGLE = "com.google"; 
final static String TYPE_AMAZON = "com.amazon"; 
final static String AMAZON_EMAIL = "com.amazon.pim"; 

public static String getAccountName(final Context context) { 
    boolean amazon = TextUtils.equals(Build.MANUFACTURER, "Amazon"); 
    String type = amazon ? TYPE_AMAZON : TYPE_GOOGLE; 
    String email = null; 
    try { 
     Account acc[] = AccountManager.get(context).getAccountsByType(type); 
     if (acc.length > 0) { 
      email = acc[0].name; 
      for (int i = 0; i < acc.length; i++) { 
       Account account = acc[i]; 
       if (amazon) { 
        // there are a lot of flags, just skip them 
        if (!TextUtils.equals(account.type, TYPE_AMAZON)) { 
         // is it an email account? 
         if (account.type.startsWith(AMAZON_EMAIL)) { 
          email = account.name; 
         } 
        } 
       } 
      } 
     } else { 
      acc = AccountManager.get(context).getAccounts(); 
      if (acc.length > 0) { 
       // just return the first one... 
       email = acc[0].name; 
      } 
     } 
    } catch (Exception ex) { 
     ex.printStackTrace(); 
    } 
    return email; 
} 

इससे Google के साथ काम करेंगे उपकरणों खेलते हैं।