2017-02-22 35 views
-1

У меня возникла проблема с записью файла на Android-накопитель. Я использую много примеров, наиболее досадная проблемаКак сохранить пароль в файл на Android?

java.io.FileNotFoundException:/хранение/эмулировать/0/Android/fileSD (Отказано в)

Да, я добавляю использования -permission на мой манифест

Это моя активность:

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); 
} 
} 

если пользователь открыт приложение в первый раз, он ввести пароль и он должен записать в файл. Если файл существует, мы должны его прочитать и сравнить с проходом, который вводит пользователь, если он равен началу нового действия, иначе покажите сообщение, что это был неправильный проход.

пожалуйста, помогите, я стараюсь сделать это в течение нескольких дней, и ИДК, что я должен делать

+0

где ваш код для чтения? –

+0

вы не пытаетесь прочитать какой-либо файл в коде выше –

+1

1) Android API 23+ вы должны запросить разрешение во время выполнения 2) Почему бы не использовать SharedPrefences? –

ответ

0

Попробуйте использовать SharedPreferences, вы можете сохранить пароль как этот

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

Когда вам это нужно вы можете получить легко

sharedPreferences.getString("password", "") 
0

не достаточно, чтобы написать его использует-разрешение на манифесте, вы должны обрабатывать его в режиме исполнения, плюс Сво плохая идея пароля магазин пользователя в файле, каждый может читать

+0

i will hash password –

+0

затем проверьте этот URL https://developer.android.com/training/permissions/requesting.html о запрашивать разрешение во время выполнения –