- Forum-Beiträge: 9
29.05.2017, 13:09:01 via Website
29.05.2017 13:09:01 via Website
Hallo,
meine App kann bis jetzt einen QR Code lesen und diesen in Form eines Toasts ausgeben.
Nun möchte ich den eingelesenen Wert mit Werten aus einer SQL Datenbank abgleichen. Noch dazu kommt, dass wenn ein Wert mit dem eingelesenen Wert übereinstimmt, soll er für den User die nächsten 5 Tage nicht mehr Verfügbar sein. Leider habe ich keine Ahnung wie ich dies machen soll, da die UserDaten und der Value für den QR Code in zwei verschiedenen SQL Tabellen laufen.
Anbei mein Code:
private ZXingScannerView mScannerView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_QR_READER
);
new GetContacts().execute();
ImageButton test = (ImageButton) findViewById(R.id.testforsql);
test.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mScannerView = new ZXingScannerView(QR_READER.this);
setContentView(mScannerView);
mScannerView.setResultHandler(QR_READER.this);
mScannerView.startCamera();
}
Override
public void handleResult(Result result) {
Log.w("handleResult", result.getText());
AlertDialog.Builder builder = new AlertDialog.Builder(QR_READER.this);
builder.setTitle("Scan Result");
builder.setMessage(result.getText());
AlertDialog alertDialog = builder.create();
alertDialog.show();
qr_result = result.getText();
Toast.makeText(getApplicationContext, qr_result, Toast.LENGTH_LONG).show();
mScannerView.resumeCameraPreview(QR_READER.this);
}
private class GetContacts extends AsyncTask<Void, Void, Void> {
@Override
protected void onPreExecute() {
super.onPreExecute();
// Showing progress dialog
pDialog = new ProgressDialog(QR_READER.this);
pDialog.setMessage("Please wait...");
pDialog.setCancelable(false);
pDialog.show();
}
@Override
protected Void doInBackground(Void... arg0) {
HttpHandler sh = new HttpHandler();
// Making a request to url and getting response
String jsonStr = sh.makeServiceCall(url);
Log.e(TAG, "Response from url: " + jsonStr);
if (jsonStr != null) {
try {
JSONArray contacts = new JSONArray(jsonStr);
// Getting JSON Array node
// looping through All Contacts
for (int i = 0; i < contacts.length(); i++) {
JSONObject c = contacts.getJSONObject(i);
String qr = c.getString("qr");
HashMap<String, String> contact = new HashMap<>();
// adding each child node to HashMap key => value
contact.put("qr",qr);
// adding contact to contact list
contactList.add(contact);
}
} catch (final JSONException e) {
Log.e(TAG, "Json parsing error: " + e.getMessage());
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(getApplicationContext(),
"Json parsing error: " + e.getMessage(),
Toast.LENGTH_LONG)
.show();
}
});
}
} else {
Log.e(TAG, "Couldn't get json from server.");
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(getApplicationContext(),
"Couldn't get json from server. Check LogCat for possible errors!",
Toast.LENGTH_LONG)
.show();
}
});
}
return null;
}
@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
// Dismiss the progress dialog
if (pDialog.isShowing())
pDialog.dismiss();
for (final HashMap<String, String> contact : contactList){
contact.get("qr");
}
}
}
}
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.