如何将密码保存到 android 上的文件?

How to save password to file on android?

我在将文件写入 Android 存储时遇到问题。我用了很多例子,最烦人的问题是

java.io.FileNotFoundException: /storage/emulated/0/Android/fileSD (Permission denied)

是的,我正在向我的清单添加使用权限

这是我的Activity:

public class MainActivity extends Activity {
    // init variables
    EditText pass;
    Button login;
    String password;
//    final String DIR_SD = "/Android";
//    final String FILENAME_SD = "fileSD";
//    final String LOG_TAG = "myLogs";

//init onCreate method that provide our logic when activity start open
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

//        if(mFileName.()){
//
//        }

    pass = (EditText) findViewById(R.id.pass);
    login = (Button) findViewById(R.id.button);



    login.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            password = pass.getText().toString().trim();

                if (TextUtils.isEmpty(password)) {

                    pass.setError("password mustnot be empty");
                    pass.focusSearch(View.FOCUS_DOWN);

                } else if (password.length() >= 6 && password.length() <= 24) {

                    Toast.makeText(getApplicationContext(), "validation sucess", Toast.LENGTH_LONG).show();

                    Intent intent = new Intent(MainActivity.this, new_activity.class);
                    startActivity(intent);


                } else {
                    pass.setError("password length must be match:5=<password>=10");
                    pass.focusSearch(View.FOCUS_DOWN);
                }


          }
    });

}


@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main_menu, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();

    //noinspection SimplifiableIfStatement
    if (id == R.id.action_settings) {
        return true;
    }

    return super.onOptionsItemSelected(item);
}
}

如果用户第一次打开应用程序,他输入密码,它应该写入文件。如果文件存在,我们应该读取它并与用户将输入的通行证进行比较,如果它等于开始新的 activity,否则显示消息,表明它是不正确的通行证。

请帮忙,我尝试做了几天,我知道我应该做什么

不足以将它的使用权限写入您的清单,您应该在运行时处理它, 加上将用户密码存储在文件中不是一个好主意,每个人都可以阅读它

尝试使用SharedPreferences,你可以这样保存密码

SharedPreferences sharedPreferences = getSharedPreferences("PrefName", MODE_PRIVATE);
sharedPreferences.edit().putString("password", "Your Password").apply();

需要的时候可以轻松取回

sharedPreferences.getString("password", "")