Я искал много вопросов, но не нашел ответа на мою проблему. Итак, здесь я иду: я создал пользовательскую функцию блокировки PIN-кода для своего приложения, которая работает как активность LAUNCHER. Это код, который я использовал в методе OnCreate(), чтобы проверить, если это первый запуск приложения (для того, чтобы запустить соответствующий код и дать пользователю возможность создать свой PIN-код)Android: SharedPreferences значение по умолчанию для строки
if (sharedPinDatabase.getString("pin", "NO PIN SAVED").equals("")) {
Log.i("SECURITY", "NO PIN SAVED");
tvInstructionsPin.setText(" It appers that you havent saved a PIN. Enter new PIN below.");
}else{}
Но всякий раз, когда я запускаю приложение в первый раз (или чищу все данные приложения), приложение пропускает этот фрагмент кода и переходит прямо к части «ввести сохраненный PIN-код» (рисунок 1). Я использовал Log.i для проверки того, что значение, которое она дается ключ («контактный»), прежде чем я ввести любой PIN-код с этой
Log.i("SECURITY", "PINs dont match Saved one is: " + sharedPinDatabase.getString("pin", "") + "entered is : " + etPinInput.getText().toString());
и то, что я получаю от этого куска кода «PINs DonT соответствует Сохранен один является: введено: « И если я нажму« ОК », не набрав ни одного номера (оставив EditText blank), он будет работать и переходит к следующему действию. Кроме того, в настройках части приложения я сделал это (для запуска на OnClick)
SharedPreferences sharedPrefWrite = getContext().getSharedPreferences("PIN_PREFS_DATABASE", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPrefWrite.edit();
editor.putString("pin", "").commit();
Intent i = new Intent(getActivity(), LockScreen.class);
startActivity(i);
И по какой-то причине она работает (при установке значения строки в «») и получает меня к нужному экрану (тот, который я сделал для первого запуска приложения) это один (Picture2):