在引入Android 3.0之前,在手機上註冊的第一個com.google
帳戶是主要帳戶,也是Android Market使用的唯一帳戶。如何獲取非主要購買帳戶的電子郵件地址
在Android 3.0及更高版本的設備上,我無法再依靠此(Account[0]
)獲取客戶的電子郵件地址。
有沒有辦法告訴哪個帳戶com.google
帳戶目前正在進行購買?
(所有我需要的是指數到Account[]
陣列賬戶類型com.google
,我能得到的電子郵件地址,一旦我有相關的指數)
在引入Android 3.0之前,在手機上註冊的第一個com.google
帳戶是主要帳戶,也是Android Market使用的唯一帳戶。如何獲取非主要購買帳戶的電子郵件地址
在Android 3.0及更高版本的設備上,我無法再依靠此(Account[0]
)獲取客戶的電子郵件地址。
有沒有辦法告訴哪個帳戶com.google
帳戶目前正在進行購買?
(所有我需要的是指數到Account[]
陣列賬戶類型com.google
,我能得到的電子郵件地址,一旦我有相關的指數)
import android.provider.ContactsContract;
AccountManager am = AccountManager.get(this);
Account[] accounts = am.getAccountsByType("com.google");
//you can set current sync account..
boolean syncEnabled = ContentResolver.getSyncAutomatically(accounts[0], ContactsContract.AUTHORITY);
恐怕是不可能的。根據我的發現,看起來應用程序內購買的帳戶是用於安裝應用程序的帳戶,您不知道。我想可能可以從根植手機上的Play商店應用程序數據庫中讀取它。
看起來,使用Google Play Android Developer API完成購買後,甚至無法找到採購帳戶,但不確定爲什麼。
如果你有任何機會發現,請告訴我。
我剛剛做了一個快速谷歌搜索,並在這個網站上遇到這個here。
您可以使用AccountManager.getAccounts
或AccountManager.getAccountsByType
獲取設備上所有帳戶名稱的列表。幸運的是,對於某些帳戶類型(包括com.google
),帳戶名稱是電子郵件地址。下面的示例代碼片段。
Pattern emailPattern = Patterns.EMAIL_ADDRESS; // API level 8+ Account[] accounts = AccountManager.get(context).getAccounts(); for (Account account : accounts) {
if (emailPattern.matcher(account.name).matches()) {
String possibleEmail = account.name;
...
} }
請注意,這需要GET_ACCOUNTS
權限:
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
更多關於使用AccountManager
可在SDK中Contact Manager示例代碼中找到。
冷杉名和姓>> java代碼?
電子郵件添加代碼
Pattern emailPattern = Patterns.EMAIL_ADDRESS; // API level 8+
Account[] accounts = AccountManager.get(getApplicationContext()).getAccounts();
for (Account account : accounts) {
if (account.type.equals("com.google")) {
email = account.name.toString();
break;
} else if (emailPattern.matcher(account.name).matches()) {
email = account.name.toString();
}
}
我會建議給更多的解釋。 – peterh
你解決這個問題? – Mikky