Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發實例 >> Android 用戶管理專題之記錄用戶身份

Android 用戶管理專題之記錄用戶身份

編輯:Android開發實例

每個人都喜歡自己的名字被他人記住,同樣地,如果想讓您的應用程序更人性化,為不同的用戶提供不同的用戶體驗,以及自定義配置,那麼就需要記錄用戶的個人信息。當用戶從舊的設備更新到新的設備,或者從一台設備切換到另一台設備上面(例如用戶擁有一台平板電腦和手機,並且經常在兩者之間切換),您的應用應當可以准確識別出用戶,那麼如何才能區分用戶和記錄用戶信息,並且准確地鑒別用戶身份,本文的目的就是要解決上面提到的問題。

對於大多數應用來說, 賬戶管理器 AccountManager 就足夠了,利用其提供的API,只要獲得用戶的權限許可,就可以很容易地取得當前設備上已經存儲的用戶賬戶名信息。

集成用戶帳號的管理,可以讓您的應用程序完成如下的功能:

  1. 表格的自動填寫(如用戶的 Email 地址信息)
  2. 記錄和獲得與用戶身份綁定的ID,而不僅僅是設備的ID

 

賬戶管理器 AccountManager 是否適合您的應用程序

應用程序通常使用如下的3種技術來進行賬戶的管理:

  1. 要求用戶填寫賬戶名稱
  2. 識別當前應用程序運行的設備信息,記錄設備的ID
  3. 通過系統提供的 AccountManager  來獲取當前設備已記錄的用戶信息

方案(1)的缺點如下:首先,每次啟動應用程序之前都需要輸入用戶名的信息,程序顯得不太友好,吸引力不足,其次,沒有好的辦法來保證用戶名的唯一性。

方案(2)較方案(1)來說為用戶減輕了一點負擔,但是它很難保證用戶的准確性。因為您的應用程序僅僅是與具體的設備綁定在了一起,想象一下,用戶從一台舊設備升級到了新設備,在新設備上面運行應用的時候,您的應用程序就不再記得該用戶了。

方案(3)是首選的解決方案,通過利用系統提供的 AccountManager,您可以獲取當前設備上面已經存儲的用戶身份信息,不論用戶擁有多少台設備,只要用戶登錄了該設備,那麼您就可以准確地識別該用戶。對於您應用程序的設計來說,也僅僅是加入幾個多余的 UI 界面而已。

 設計不同的賬戶類型

Android 設備可以存儲不同類型的賬戶信息,當您通過 AccountManager 來進行賬戶查詢的時候,通常需要利用賬戶類型來進行過濾,賬戶類型(account type)是一個字符串,要求唯一性,用來和系統中已存儲的其他類型的賬戶進行區分,例如,Google 的賬戶類型是 “com.google”,Twitter 的賬戶類型是 “com.twitter.android.auth.login”,當然可以利用自己的個人域名來進行區分,例如 “com.zhourunsheng.com”。

申請獲得用戶賬戶信息的權限 GET_ACCOUNT

如果要讀取當前設備上面的賬戶信息,您的應用需要 GET_ACCOUNTS  權限,在 manifest 文件的 <uses-permission>  tag 中添加

示例代碼

<manifest ... >
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
...
</manifest>

 用戶帳號查詢

一旦確定了賬戶的類型,您就可以通過 AccountManager  來進行查詢了。首先通過調用 AccountManager.get()  來獲得一個 AccountManager 實例對象,然後調用它的成員函數 getAccountsByType() ,通過傳遞賬戶類型的參數,就能得到該賬戶類型下面的所有用戶的一個用戶列表。

示例代碼

AccountManager am = AccountManager.get(this); // "this" references the current Context

Account[] accounts = am.getAccountsByType("com.google");

函數調用返回一個包含所有帳號 Account 的數組。
假如查詢結果多於一個用戶,那麼在您的應用中應當彈出一個對話框來讓用戶選擇其中一個賬戶為該應用的當前賬戶。

利用用戶帳號個性化您的應用程序

用戶帳號 Account  中包含了用戶名信息,Google 的賬戶存儲的是用戶的 Email 地址,您可以使用這些信息來擴展您的應用,比如:

  1. 表格自動填寫建議和自動填寫,這樣用戶就不需要手動輸入賬戶信息了。
  2. 作為您應用程序在線數據庫的一個鍵值,以此來保存和區分不同用戶的自定義配置信息。

是否需要賬戶的驗證機制來處理私有數據

通過用戶帳號 Account 可以很方便的區分用戶,但是 Account 本身並不提供任何數據的保護機制,如果您的應用中需要用戶訪問在線數據庫的私有數據,那麼需要另一種訪問控制方式: authentication (驗證),這會在下一節課中講到,通過編寫一個自定義的驗證機制來訪問您應用程序的在線私有數據庫。

參考文摘:
http://developer.android.com/training/id-auth/identify.html

 

轉自:http://blog.zhourunsheng.com/2012/01/android-%e7%94%a8%e6%88%b7%e7%ae%a1%e7%90%86%e4%b8%93%e9%a2%98%e4%b9%8b%e8%ae%b0%e5%bd%95%e7%94%a8%e6%88%b7%e8%ba%ab%e4%bb%bd/ | 潤物無聲

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved