2011-07-20 168 views
4

我做了一個工作正常的android應用程序。我在其中實現了登錄功能。任何人都可以指導我如何存儲用戶的登錄憑據,以便用戶每次啓動應用程序時都不必登錄。商店登錄憑證android

回答

4

Here's從Android開發者網站的例子:

public class Calc extends Activity { 
    public static final String PREFS_NAME = "MyPrefsFile"; 

    @Override 
    protected void onCreate(Bundle state){ 
     super.onCreate(state); 
     . . . 

     // Restore preferences 
     SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); 
     boolean silent = settings.getBoolean("silentMode", false); 
     setSilent(silent); 
    } 

    @Override 
    protected void onStop(){ 
     super.onStop(); 

     // We need an Editor object to make preference changes. 
     // All objects are from android.context.Context 
     SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); 
     SharedPreferences.Editor editor = settings.edit(); 
     editor.putBoolean("silentMode", mSilentMode); 

     // Commit the edits! 
     editor.commit(); 
    } 
} 

我推薦共享首選項,但也要看看該頁面上的其他選項,以便更好地滿足您的需求。

2

我將證書存儲在sqlite數據庫中,並在每次啓動應用程序時進行檢查。我的應用程序有一個註銷按鈕,清除憑證。

  1. 當db表是空白的第一時間,目前的登錄表單
  2. 存儲在數據庫表中的登錄成功再次
  3. 檢查
  4. 退出應用
  5. 啓動應用程序,如果登錄信息存在
  6. 如果可用,通俗易懂啓動或再次要求登錄

該設計會根據您保持記錄所有的登錄等的需求

1

您可以使用共享偏愛這種任務

1

最安全的方式可能是實現一些「cookie」機制,所以你不必真的在本地存儲密碼。 (由於沒有簡單的安全存儲可用於應用程序,幾乎所有內容都暴露在根目錄下。)

有關更多指針,請參閱Android Keychain for user credentials

您可能想使用一些現有的系統,如openid或oauth,因此您不必擔心自己的安全問題。如果您可以使用Google帳戶作爲登錄信息,請參閱this blog