我有android.permission.READ_OWNER_DATA
但我找不到任何可靠的代碼,可以解釋如何讀取設備所有者的電子郵件地址。我怎樣才能做到這一點?如何獲取Android用戶的電子郵件地址?
回答
爲什麼你想那樣做?
import android.accounts.Account;
import android.accounts.AccountManager;
import android.content.Context;
/**
* This class uses the AccountManager to get the primary email address of the
* current user.
*/
public class UserEmailFetcher {
static String getEmail(Context context) {
AccountManager accountManager = AccountManager.get(context);
Account account = getAccount(accountManager);
if (account == null) {
return null;
} else {
return account.name;
}
}
private static Account getAccount(AccountManager accountManager) {
Account[] accounts = accountManager.getAccountsByType("com.google");
Account account;
if (accounts.length > 0) {
account = accounts[0];
} else {
account = null;
}
return account;
}
}
在你AnroidManifest.xml
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
這看起來很不錯...但我需要一些適用於Android 1.5的東西?你的袖子裏有沒有老班級的API? – kape123 2010-03-31 21:29:07
這不適用於Android 1. *恐怕。如果它有任何的安慰,你仍然可以在一個目標爲1.5的應用程序中使用它,並且乾淨地檢測功能何時不可用以及 嘗試使用String name = UserEmailFetcher.getEmail(this); }趕上(的VerifyError E){// 偏偏如果的AccountManager不可用(例如1.x中) } 您需要 <使用-SDK安卓的minSdkVersion = 「3」/>在 您表現。 – 2010-03-31 21:36:05
這是隱藏的,你必須使用反射才能得到它。不要,如果你真的需要。 – alexanderblom 2010-04-01 01:10:13
上棉花糖版本
btn_click =(按鈕)findViewById(R.id.btn_click)工作;
btn_click.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0)
{
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M)
{
int permissionCheck = ContextCompat.checkSelfPermission(PermissionActivity.this,
android.Manifest.permission.CAMERA);
if (permissionCheck == PackageManager.PERMISSION_GRANTED)
{
//showing dialog to select image
String possibleEmail=null;
Pattern emailPattern = Patterns.EMAIL_ADDRESS; // API level 8+
Account[] accounts = AccountManager.get(PermissionActivity.this).getAccounts();
for (Account account : accounts) {
if (emailPattern.matcher(account.name).matches()) {
possibleEmail = account.name;
Log.e("keshav","possibleEmail"+possibleEmail);
}
}
Log.e("keshav","possibleEmail gjhh->"+possibleEmail);
Log.e("permission", "granted Marshmallow O/S");
} else { ActivityCompat.requestPermissions(PermissionActivity.this,
new String[]{android.Manifest.permission.READ_EXTERNAL_STORAGE,
android.Manifest.permission.READ_PHONE_STATE,
Manifest.permission.GET_ACCOUNTS,
android.Manifest.permission.CAMERA}, 1);
}
} else {
//下再棉花糖
String possibleEmail=null;
Pattern emailPattern = Patterns.EMAIL_ADDRESS; // API level 8+
Account[] accounts = AccountManager.get(PermissionActivity.this).getAccounts();
for (Account account : accounts) {
if (emailPattern.matcher(account.name).matches()) {
possibleEmail = account.name;
Log.e("keshav","possibleEmail"+possibleEmail);
}
Log.e("keshav","possibleEmail gjhh->"+possibleEmail);
}
}
});
**
- 1. TeamCity如何獲取Subversion用戶的電子郵件地址?
- 2. Javamail - 如何獲取用戶的默認電子郵件地址?
- 3. 如何獲取Yii登錄用戶的電子郵件地址?
- 4. Facebook Android登錄獲取用戶電子郵件地址
- 5. 如何根據電子郵件地址獲取Facebook用戶名?
- 6. 如何獲取電子郵件地址作爲用戶名每
- 7. 如何從oauth獲取用戶名或電子郵件地址?
- 8. 如何從電子郵件地址獲取電子郵件服務的網址
- 9. 如何獲取用戶電子郵件地址使用解析Facebook的Android-
- 10. 如何獲取Android設備的主要電子郵件地址
- 11. 從給定的電子郵件地址獲取電子郵件地址DirectoryEntry
- 12. 如何在Yahoo郵件中獲取電子郵件地址?
- 13. 如何從郵件編輯器獲取電子郵件地址
- 14. 如何取電子郵件地址?
- 15. 無法獲取電子郵件地址
- 16. Facebook API獲取電子郵件地址
- 17. 從Samaccountname獲取電子郵件地址
- 18. 從facebook獲取電子郵件地址
- 19. 如何獲取podio項目的電子郵件到電子郵件地址?
- 20. 在Cocoa中獲取用戶的默認電子郵件地址
- 21. 在.NET中獲取當前用戶的電子郵件地址
- 22. 在Youtube上獲取用戶的電子郵件地址
- 23. Outlook REST API - 獲取登錄用戶的電子郵件地址
- 24. 從Live SDK獲取用戶的電子郵件地址
- 25. 獲取Facebook用戶的公共電子郵件地址
- 26. 獲取Outlook 2007中當前用戶的電子郵件地址
- 27. 在SPServices中獲取用戶的電子郵件地址
- 28. 獲取用戶輸入的電子郵件地址
- 29. 使用AngularFire獲取用戶電子郵件地址列表
- 30. 用Facebooker獲取用戶電子郵件地址?
看到這個問題:http://stackoverflow.com/questions/2112965/how-to-get-the-android- devices-primary-e-mail-address – 2010-03-31 21:13:01
我的代碼適用於2個Android版本,但我希望它能幫助別人。 它獲取所有者姓名,電子郵件和電話(用戶除syncyncization帳戶以外可能有電子郵件)。 在android 2.3上測試https://gist.github.com/3904299 – Jehy 2012-10-17 08:10:00
爲什麼好的問題關閉?我開始越來越多地看到這一點。 – 2013-11-07 15:43:14