background image

◆当点 SAVE 按钮时,将会调用 Javasccript 中的 createAccount()方法。

◆在 Javasccript 中的 createAccount()方法中,获得用户的输入的帐号名,即使用

'#accountName').val() 获 得 其 值 , 然 后 通 过 调 用 后 端 Android  Java 应 用 中 的

createAccount 方法去保存帐户名。跟后端 Android Java 的交互,在本系列的第一篇教程中有
提到,如果不大清楚,请查看第一篇教程。

下面看下后端的

Android Java 应用中的 createAccount 方法如何编写。

19

import android.accounts.AccountManager; import android.accounts.Account; 

20

... public class ContactsActivity extends Activity { 

21

  ...   private String accountType = null; 

22

  ...   public void onCreate(Bundle savedInstanceState) { 

23

    ...     accountType = "com.jquerymobile.demo.contact"; 

24

    ...   } 

25

   public void createAccount(String accountN, String displayPage){ 

26

       if(accountN  !=  null  &&  !"".equals(accountN)){             accountNaccountName  = 

accountN; 

27

 

 

 

 

 

 AccountManager.get(this).addAccountExplicitly(new 

Account(accountName,accountType), "dummyPassword", null);     } 

28

    loadPage(displayPage);   } 

29

  ... } 

下面讲解下这段代码:

◆实际上帐号的创建是通过 android.accounts.AccountManager 类去创建的。Android2.0 中

加入了一个新的包

android.accounts,该包主要包括了集中式的账户管理 API,用以安全地

存储和访问认证的令牌和密码,比如,我们的手机存在多个账户,每个账户下面都有不同
的信息,甚至每个账户都可以与不同的服务器之间进行数据同步

(例如,手机账户中的联系

人可以是一个

Gmail 账户中的通讯录,可联网进行同步更新)。

这 里 首 先 通 过

AccountManager.get() 获 得 了 它 的 一 个 实 例 , 接 着 调 用 其

addAccountExplicitly 方 法 , 创 建 了 一 个 新 的 帐 号 , 和 密 码 ( 这 里 的 密 码 默 认 是
dummyPassword),当帐号创建完后,将回调 HTML 页面,这里通过 loadPage 方法去加载回

HTML 页面。

◆为了能调用 Android API 中的创建帐号的功能,必须在 AndroidManifest.xml 中进行如

下设置,声明一个

intent-filter:

30

<intent-filter>   <action android:name="android.accounts.AccountAuthenticator"/> 

31

</intent-filter> 

◆除此之外,必须在 meta-data 中声明帐号验证器如下: