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