2011-07-20 171 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