最近有一个需求,当用户在用我们的application提交请求的时候,需要得到用户的一个标示

几经考量,发现ip address或者去找到一个android device的唯一标示都不是很理想

最终选中从用户机器中的邮件地址入手:比如用户用于登入android market的gmail account,或者用户配置在机器上面的mail 地址

我们就可以利用这些email地址主动联系用户if necessary。


习惯性的google了一圈,找到一个获取android device primary email address和获取android owner's email address两个有用的链接

发现如果要获取机器上面的账户信息其实很简单,关键就是AccountManager的使用 (Android 2.0+)

第一: 要申明权限

<uses-permission android:name="android.permission.GET_ACCOUNTS"/>
第二:获取AccountManager对象,查询account type为com.google的account

AccountManager accountManager = AccountManager.get(context);Account[] accounts = accountManager.getAccountsByType("com.google");

或者获取全部的account,循环之并按照自己的条件查找符合的account

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;  String emailType = accoun.type;}


更多相关文章

  1. 万字长文带你了解最常用的开源 Squid 代理服务器
  2. android sharedUserId sharedPreferences
  3. android 6.0的变化
  4. Android应用平均价格是iOS应用的2.5倍
  5. Activity 生命周期(一)
  6. Android(安卓)生成jar包(2)
  7. Android通过 SharedPreference 实现用户名与密码的存储与调用
  8. Google 官方推出应用开发架构指南
  9. Android(安卓)开发:(二)Activity篇 - activity生命周期以及函数意义

随机推荐

  1. android-包签名
  2. Android存储选项简析
  3. Android(安卓)RenderScript 的使用基础篇
  4. Android高人必修 Ant 编译Android工程
  5. Android(安卓)40个面试点
  6. Android绘图之XML绘图
  7. Android(安卓)8.0 学习(4)---Android通用内
  8. Android智能指针
  9. Java中的WeakReference 和 SoftReference
  10. Android开发实践:线程与异步任务