Irgendwie bin ich da noch nicht ganz so Sattelfest..... also hier mal der Code in schöner reihenfolge, mit Kommentaren dazwischen...
public class rechner extends Activity {
//Variablen
StringBuffer buffer;
List<NameValuePair> nameValuePairs;
ProgressDialog dialog = null;
final static String MY_DB_NAME = "awad";
final static String MDT_version = "version";
final static String tag="ensacom";
final static String version_nr = "version_nr";
SQLiteDatabase myDB = null;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.gr_ubersicht);
checkDbVersionOnAndroid();
Also hier der abruf von checkDbVersionOnAndroid(), dies funktioniert einwandfrei (denke ich mal)
}
void checkDbVersionOnAndroid(){
try {
dialog = ProgressDialog.show(rechner.this, "Datenbank", "Überprüfung..."
myDB = this.openOrCreateDatabase(MY_DB_NAME, MODE_PRIVATE, null);
myDB.execSQL("CREATE TABLE IF NOT EXISTS " + MDT_version
+ " ( "
+ version_nr + " varchar(10) "
+ ""
dialog.dismiss();
} finally {
if (myDB != null){
Toast.makeText(getBaseContext(), "Datenbank gefunden", Toast.LENGTH_SHORT).show();
/*String sql = "INSERT INTO "+ MDT_version +" (version_nr) " +
"VALUES (0)";
myDB.rawQuery(sql, null); */
myDB.close();
checkInternetDb.start();
}
Diese finally benutze ich zum ersten mal, der sqlite insert ignorieren, da kommt dan was anderes hin (ich habe hier das versucht was Sven mir versuchte zu vermitteln??? (checkInternetDb.start(); ))
}
}
Thread checkInternetDb = new Thread(new Runnable(){
public void run(){
checkMysqlVersionNr();
}
});
Und wenn ich das richtig verstandenhabe gehört das hier oben hin?????
Nun kommen wir zum Problem, die funktion soll über php mir die aktuelle versions-nr herausfinden.
protected void checkMysqlVersionNr(){
Log.i("cmvn","angekommen"
InputStream is = null;
StringBuilder sb=null;
String result=null;
String id_lieferant = "1";
if(! isNetworkAvailable()){
AlertNoInternetOldDb();
}else{
Log.i("Internetaviable","angekommen"
try{ dialog = ProgressDialog.show(rechner.this, "Datenbank", "Version Überprüfung..."
HttpClient httpclient=new DefaultHttpClient();
HttpPost httppost= new HttpPost("mysql_check_version_nr.php" // make sure the url is correct.
//add your data
nameValuePairs = new ArrayList<NameValuePair>(1);
//String id_lieferant = getid_lieferant(this);
Log.i("id_lieferant","id_lieferant is " + id_lieferant);
// Always use the same variable name for posting i.e the android side variable name and php side variable name should be similar,
nameValuePairs.add(new BasicNameValuePair("id_lieferant",id_lieferant.toString().trim())); // $Edittext_value = $_POST['Edittext_value'];
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
//Execute HTTP Post Request
HttpResponse response=httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
is = entity.getContent();
}catch(Exception e){
Log.e("log_tag", "Error in http connection"+e.toString());
}
//convert response to string
try{
InputStreamReader iSR = new InputStreamReader(is,"UTF-8"
BufferedReader reader = new BufferedReader(iSR,8);
sb = new StringBuilder();
Log.i("isr",iSR.toString());
sb.append(reader.readLine());
String line="0";
while ((line = reader.readLine()) != null) {
sb.append(line );
Log.d("lineNotNull","line"+line);
}
is.close();
result=sb.toString();
Log.i("result","result"+result);
Log.i("resultToString","result"+result.toString());
}catch(Exception e){
Log.e("log_tag", "Error in read"+e.toString());
}
//convert response to string
try{
dialog.dismiss();
SQLiteDatabase db = this.openOrCreateDatabase(MY_DB_NAME, MODE_PRIVATE, null);
// 2. build query
Cursor c = db.rawQuery("SELECT * FROM " + MDT_version, null);
String version_nr = c.getString(c.getColumnIndex("version_nr");
Log.i("db_version_nr","Version Nr ist = "+ version_nr );
if (c.equals(result) ) {
Toast.makeText(getBaseContext(), "Datenbank Aktuell", Toast.LENGTH_LONG).show();
}else{
Toast.makeText(getBaseContext(), "Datenbank Veraltet", Toast.LENGTH_LONG).show();
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("Möchten Sie Ihre Datenbank jetzt aktualisieren?".setPositiveButton("Yes", dialogClickListener)
.setNegativeButton("No", dialogClickListener).show();
}
c.close();
}catch(Exception e){
Log.e("log_tag", "SQL DB_fehler"+e.toString());
}
}
}
///CHECK INTERNET
public void AlertNoInternetOldDb(){
rechner.this.runOnUiThread(new Runnable() {
public void run() {
AlertDialog.Builder builder = new AlertDialog.Builder(rechner.this);
builder.setTitle("Keine Internetverbindung."
builder.setMessage("Ihre Datenbank könnte veraltet sein."
.setCancelable(false)
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
}
});
AlertDialog alert = builder.create();
alert.show();
}
});
}
private boolean isNetworkAvailable() {
ConnectivityManager connectivityManager
= (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
return activeNetworkInfo != null && activeNetworkInfo.isConnected();
}
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.