5

我有这个小 gps 位置插入代码,但那不是插入到数据库中:

db.setVersion(1);
db.setLocale(Locale.getDefault());
db.setLockingEnabled(true);

final String gps = "CREATE TABLE IF NOT EXISTS GPS_Values ("
                + "id INTEGER PRIMARY KEY AUTOINCREMENT, Latitude float(10, 6), Longitude float(10, 6), cur_timestamp TIMESTAMP);";
db.execSQL(gps);

和插入线:

// GPS
public class MyLocationListener implements LocationListener {
    public void onLocationChanged(Location loc) {
        loc.getLatitude();
        loc.getLongitude();

        ContentValues gps_values = new ContentValues();

        gps_values.put("Latitude", loc.getLatitude());
        gps_values.put("Longitutde", loc.getLongitude());


        try {
            db.beginTransaction();
            db.insert("GPS_Values", null, gps_values);
            db.setTransactionSuccessful();
        } finally {
            db.endTransaction();
        }

        String Text = "My current location is: " + "Latitude = "
                + loc.getLatitude() + "\nLongitude = " + loc.getLongitude();

        Toast.makeText(getApplicationContext(), Text, Toast.LENGTH_SHORT)
                .show();

    }

    public void onProviderDisabled(String provider) {
        Toast.makeText(getApplicationContext(), "Gps Disabled",
                Toast.LENGTH_SHORT).show();
    }

    public void onProviderEnabled(String provider) {
        Toast.makeText(getApplicationContext(), "Gps Enabled",
                Toast.LENGTH_SHORT).show();
    }

    public void onStatusChanged(String provider, int status, Bundle extras) {
    }

}// gps vége

当试图获取位置时,一切正常,但插入。

我有与 tha 加速器类似的代码,并且工作正常。

请帮助我

4

3 回答 3

14

尝试insertOrThrow改用 - 如果您的数据库约束不允许特定插入,它将引发异常,那么您将能够弄清楚。

于 2012-07-24T15:43:47.607 回答
8

您要插入的列中有错字:

    gps_values.put("Longitutde", loc.getLongitude());

应该

    gps_values.put("Longitude", loc.getLongitude());

insert()如果发生错误,调用将返回 -1,但您没有检查返回值。相反,它通常更容易使用insertOrThrow,它会在错误时引发异常。

于 2012-07-24T15:44:20.587 回答
0

您尝试插入“经度”,但您创建了“经度”字段

于 2012-07-24T15:47:17.457 回答