如何使你的Android应用记住曾经使用过的账户信息
原文:http://android.eoe.cn/topic/android_sdk
当您记住他们的名字时,每个人都会很喜欢。最简单的一个例子,您能够做的,让您的应用更加受人喜爱的,最有效的方法是记住您的用户是谁——尤其是当用户使用一个新的设备,或者是开始像携带电话一样携带平板电脑时。但您如何知道您的用户是谁?您如何在一个新的设备上认出他们?
对于大多数应用来说,答案是AccontManager API。使用user's permission,您可以使用装好管理器取得用户储存在他们设备上的账号名。
集成用户的账号可以让您做各种各样的事情,例如:
- 使用用户的email地址自动填充表格。
- 取得一个绑定到用户而不是设备的ID。
确定您的账户管理器
应用基本上都是使用下述三种技术中的一个来记住用户的:
- * 请求用户键入用户名
- * 检索唯一的设备ID来记住这个设备
- * 通过AccontManager检索内置的账号
选项(1)是有问题的。首先,让用户在进入您的应用之前键入用户名会让您的应用缺乏吸引力。其次,无法保证选择的用户名是唯一的。
选项(2)对用户来说是省事的,但达成它是比较棘手的。更重要的是,这种方法只会允许您在同一个设备上记住用户。想象一下某人升级了一个牛逼闪闪的新设备,但却发现您的应用没有记住他的挫折感。
选项(3)是首选。账户管理器允许您获取存储在用户设备上的账户信息。正如我们在本节看到的,使用账户管理器使您只需要向您的UI添加一对额外的接口就能够记住用户,而和用户拥有多少设备无关。
决定使用账户的类型
Android设备可以储存来自不同提供商的多个账户。当您向AccontManager请求账户名时,您可以通过账户类型过滤器来选择。账户类型是一个字符串,它唯一标示了实体创建的账号。例如Google账号拥有一个"com.google"的类型,而Twitter使用"com.twitter.android.auth.login"的账户类型。
请求GET_ACCOUNT权限
In order to get a list of accounts on the device, your app needs the GET_ACCOUNTS permission. Add a tag in your manifest file to request this permission:
为了获取设备上的账户列表,您的应用需要GET_ACCOUNTS权限。在您的manifest文件中添加标签来请求这个权限:
1 |
<manifest ... > |
向账户管理器请求账户列表
当您决定了您所感兴趣的账户类型,您需要查询此类型的账户.调用AccountManager.get())可以获得一个AccountManager实例。然后使用这个实例来调用getAccountsByType()) 。
1 |
AccountManager am = AccountManager.get(this); // "this" references the current Context
Account[] accounts = am.getAccountsByType("com.google");
|
使用账号对象个性化您的应用
账号对象包含一个账户名,Google账户的账户名是一个email地址。您可以用不同的方法来使用这个信息,例如:
- * 作为表单的自动填充选项,这样用户就不必手动输入账号信息。
- * 作为进入您自己在线的,储存使用和个性化信息的数据库密匙。
决定只要用户名是否足够
账户名是记住用户的好方法,但是Accont对象自身不保护您的数据,也不会给您除了用户的账户名以外的任何信息。如果您的应用需要允许用户去在想访问私人数据,您需要一些更强壮的方法:authentication(认证)。下一节解释了如何使用现有的在线服务进行用户验证。之后一节有关写一个自定义验证器使您能够安装您自己的账户类型
如何使你的Android应用记住曾经使用过的账户信息的更多相关文章
- Android之记住密码与自动登陆实现
本文主要讲述了利用sharedpreference实现记住密码与自动登陆功能 根据checkbox的状态存储用户名与密码 将结果保存在自定义的application中,成为全局变量 布局文件 < ...
- Android之拨号界面图片风格,无信息默认显示界面修改
Android之拨号界面图片风格,无信息默认显示界面修改 点开Dialer app,出现拨号,联系人,收藏三个选项卡,也就是三个Fragment,在三个界面都没有信息的时候会显示一个时钟,联系人,收藏 ...
- Android记录3--ExpandableListView使用+获取SIM卡状态信息
Android记录3--ExpandableListView使用+获取SIM卡状态信息 2013年8月9日Android记录 ExpandableListView是一个可以实现下拉列表的控件,大家可能 ...
- Android中获取系统上安装的APP信息
Version:0.9 StartHTML:-1 EndHTML:-1 StartFragment:00000099 EndFragment:00003259 Android中获取系统上安装的APP信 ...
- init进程 && 解析Android启动脚本init.rc && 修改它使不启动android && init.rc中启动一个sh文件
Android启动后,系统执行的第一个进程是一个名称为init 的可执行程序.提供了以下的功能:设备管理.解析启动脚本.执行基本的功能.启动各种服务.代码的路径:system/core/init,编译 ...
- Android APP 读取 AndroidManifest.xml 中的版本信息详解
APP都会涉及到版本的问题,Android APP的版本信息保存在AndroidManifest.xml文件的顶部.如下图: 有2个属性表示,“android:versionCode”和“androi ...
- android The connection to adb is down 错误信息
之前运行eclipse执行android应用都没问题,今天突然出问题了,控制台报错: The connection to adb is down, and a severe error has occ ...
- [Android Pro] Android studio jni中调用Log输出调试信息
reference to : http://www.linuxidc.com/Linux/2014-02/96341.htm Android 开发中,java 可以方便的使用调试信息Log.i, Lo ...
- android 保存 用户名和密码 设置等应用信息优化
1.传统的保存用户名,密码方式 SharedPreferences Editor editor = shareReference.edit(); editor.putString(KEY_NAME,& ...
随机推荐
- unity3d uv动画
做个总结吧.算是. 之前做过一个项目,是一个关于太空大战的项目. 算是自己做的吧.大体环境是unity3d + win32,mac上不行.好像不支持这个,原因未知.希望知道的告诉我下. 以下具体说下整 ...
- nodejs直接调用grunt(非调用批处理)
在windows下,我们做js构建工作,都习惯安装grunt-cli,只需要命令行grunt...一切构建工作都自动完成了.这已经是很完美的情况了,不过最近要做一个服务器版的自动化构建系统,在node ...
- 感谢大家对《Cocos2d-JS开发之旅》的支持
昨天收到一封读者的来信,给我报了个喜,也提了一些非常好的建议. 他通过短短1个月时间就完成了学习和游戏开发,并发布了Android和iOS平台,真了不起.授人以鱼不如授人以渔,这也是写书的最大喜悦吧. ...
- Ulua_toLua_基本案例(八)_LuaAccessingArray
Ulua_toLua_基本案例(八)_LuaAccessingArray using UnityEngine; using LuaInterface; public class AccessingAr ...
- hbuilder mui uploader图片上传到服务器完整版(ASP.NET)
html布局,比较简单,模仿微信的: <div class="dynamic_images"> <ul> <!--<li><img ...
- android手机导入.cer证书文件的方法
访问很多https协议的网站需要安装证书,手机也可以导入cer文件,你知道么?本文将通过简单的两步告诉你手机安装cer文件的方法. 步骤一:请先将数字证书文件“******.cer”文件复制到SD卡的 ...
- 利用XAMPP搭建PHP开发环境,解决443端口被占用
为了方便,作为学习使用的PHP环境,我们可以直接使用Apache+mysql+php集成开发环境.这样的集成软件有appserv和xampp,这里我们以xampp为例. 首先下载xampp软件,下载地 ...
- 使用PowerDesigner生成SQL语句
0.我使用的PowerDedigner的版本如下: 1.tools>>Resource>>DBMS,然后选中你的数据库版本,双击或点击左上角的properties. 2.再选择 ...
- ASP.NET WebForm Form表单如何实现MVC那种“自动装配”效果呢?
我们知道ASP.NET MVC有个强大的地方就是Form表单提交到action的时候,可以直接将Form的参数直接装配到action的参数实体对象中 比如 action方法 Register(User ...
- 浏览器跨域问题(jsonp)——jsonp详解
json相信大家都用的多,jsonp我就一直没有机会用到,但也经常看到,只知道是“用来跨域的”,一直不知道具体是个什么东西.今天总算搞明白了.下面一步步来搞清楚jsonp是个什么玩意. 同源策略 首先 ...