- Forum-Beiträge: 23
07.08.2016, 09:55:32 via Website
07.08.2016 09:55:32 via Website
Hallo,
Ich sitze nun schon seit Stunden an einem Problem und weiß keine Lösung mehr.
Die App, die ich programmiere, soll nur einmalig, nachdem man sie installiert hat , eine Pin abfragen, um nur Leuten auf die App Zugriff zu gewähren, die die Pin haben.
Ich bin schon soweit, dass man mit der Pin reinkommt und bei einer falschen Pin nicht.
Aber ich verzweifle daran, die Pin Abfrage nur einmal zu machen, und nicht bei jedem Start.
Ich kann mit SharedPreferences feststellen, ob es das erste Mal ist, aber ich muss gleichzeitig noch abfragen, ob die Pin eingegeben wurde, weil sonst kann man, ohne die Pin einzugeben, die App einfach beenden und neu starten und die Pin wird nicht abgefragt, obwohl man sie noch nicht eingegeben hat.
Das ist meine Unlock.java
package intern.csg_germering.de.csg_info;
import android.annotation.SuppressLint;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.graphics.Bitmap;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.inputmethod.InputMethodManager;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Button;
import android.widget.EditText;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;
import java.util.Objects;
import java.util.Observable;
import intern.csg_germering.de.csg_info.Main;
public class Unlock extends AppCompatActivity {
public Button unlockbt;
public EditText pin;
public TextView helppin;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_unlock);
unlockbt = (Button) findViewById(R.id.unlockbt);
pin = (EditText) findViewById(R.id.pin);
helppin = (TextView) findViewById(R.id.helppin);
}
boolean doubleBackToExitPressedOnce = false;
@SuppressLint("NewApi")
@Override
public void onBackPressed() {
if (doubleBackToExitPressedOnce) {
this.finishAndRemoveTask();
return;
}
this.doubleBackToExitPressedOnce = true;
Toast.makeText(this, "Zum Verlassen der Anwendung, 'Zurück' erneut drücken.", Toast.LENGTH_SHORT).show();
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
doubleBackToExitPressedOnce=false;
}
}, 2000);
}
@SuppressLint("NewApi")
public void unlock(View view){
String enteredPin = (String) pin.getEditableText().toString();
String PIN = "0000";
if (Objects.equals(PIN, enteredPin)){
startActivity(new Intent(Unlock.this, Main.class));
Main.permissionOk = true;
Toast.makeText(this, "Freigeschaltet!" , Toast.LENGTH_SHORT).show();
}
else {
Toast.makeText(this, "Falsche Pin." , Toast.LENGTH_SHORT).show();
pin.setText("");
}
}
public void showFAQ(View view) {
startActivity(new Intent(Unlock.this, about.class));
}
}
Und hier die "First Time " Abfrage in der Main.java
public SharedPreferences sharedTime = getSharedPreferences(preferences_name,0);
if (sharedTime.getBoolean("firstTime",true))
{
startActivity(new Intent(Main.this, Unlock.class));
sharedTime.edit().putBoolean("firstTime",false).apply();
}
Schonmal Danke im Voraus
LG Phillip
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.