繁体   English   中英

创建用于实时磁传感器数据的SQLite数据库

[英]Creating SQLite database for Live magnetic sensor data

我是Android平台的新手。 我想将实时磁传感器数据直接记录到存储中的sQLite数据库中。 我编写了代码来获取磁性数据,但无法创建数据库。 我在下面粘贴了代码。 任何帮助都会很棒。

先感谢您。

 // code for Database Helper public class DBHelper extends SQLiteOpenHelper{ private static final String DB_NAME = "Mag_Positioning.db"; private static final int DB_VERSION = 1; private static final String COL_ID = "ID"; private static final String COL_XAXIS = "X-AXIS"; private static final String TABLE_NAME = "MAP_COORDINATES"; private static final String COL_YAXIS = "Y-AXIS"; private static final String COL_ZAXIS = "Z-AXIS"; public DBHelper(Context context){ super(context, DB_NAME, null, DB_VERSION); } @Override public void onCreate(SQLiteDatabase db) { String createTable = "CREATE TABLE " + TABLE_NAME + "(" + COL_ID + " INTEGER PRIMARY KEY AUTOINCREMENT," + COL_XAXIS + " INTEGER," + COL_YAXIS + " INTEGER," + COL_ZAXIS + " INTEGER" + " )"; db.execSQL(createTable); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME); onCreate(db); } public void insert(Integer xaxis, Integer yaxis, Integer zaxis){ SQLiteDatabase db = this.getWritableDatabase(); } } 
  // code for getting magnetic sensor data // Its just fragment of code public class MainActivity extends AppCompatActivity implements SensorEventListener { Sensor magnetometer; SensorManager sm; TextView magnetismx; TextView magnetismy; TextView magnetismz; DBHelper dbHelper; public float a; public float b; public float c; boolean recording = false; boolean stoprecord = false; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); dbHelper = new DBHelper(this); // I have declared some button here... @Override public void onSensorChanged(SensorEvent event) { Sensor sensor = event.sensor; a = event.values[0]; b = event.values[1]; c = event.values[2]; if (sensor.getType() == Sensor.TYPE_MAGNETIC_FIELD) { magnetismx.setText(Float.toString(event.values[0])); magnetismy.setText(Float.toString(event.values[1])); magnetismz.setText(Float.toString(event.values[2])); if (!recording) { return; } if(stoprecord){ return; } } try { writeToCsv(Float.toString(a), Float.toString(b), Float.toString(c)); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } 

ps:数据库代码也无法正常工作。表未创建。

我自己解决了问题。 数据库类存在一些问题。 我已将以下代码用于数据库帮助程序类。

 ublic class DBHelper extends SQLiteOpenHelper { private static final String DB_NAME = "Mag_Positioning.db"; private static final int DB_VERSION = 1; //Table for measurement private static final String ID = "id"; private static final String MAP_ID = "Mapid"; private static final String COLXAXIS = "X_AXIS"; private static final String TABLENAME = "Fingerprint"; private static final String COLYAXIS = "Y_AXIS"; private static final String COLZAXIS = "Z_AXIS"; private static final String MAPX = "X_CORD"; private static final String MAPY = "Y_CORD"; private static final String DIFF = "Diff"; private static final String FINAL = "FINAL"; private static final String KEY_FINGERPRINT_ID = "id"; private static final String KEY_MAP_NAME = "map_name"; private static final String KEY_POSITION_X = "position_x"; private static final String KEY_POSITION_Y = "position_y"; private static DBHelper mInstance; public DBHelper(Context context) { super(context, DB_NAME, null, DB_VERSION); } public static DBHelper getInstance() { if (mInstance == null) { synchronized (DBHelper.class) { if (mInstance == null) { mInstance = new DBHelper(BaseApp.getApp()); } } } return mInstance; } @Override public void onCreate(SQLiteDatabase db) { String createTable = "CREATE TABLE " + TABLENAME + "(" + ID + " INTEGER PRIMARY KEY," + MAP_ID + " INTEGER ," + MAPX + " INTEGER, " + MAPY + " INTEGER, " + COLXAXIS + " REAL, " + COLYAXIS + " REAL, " + COLZAXIS + " REAL, " + FINAL + " REAL )"; db.execSQL(createTable); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL("DROP TABLE IF EXISTS " + TABLENAME); onCreate(db); } public void insert(int a, int b, int c, float x, float y, float z, float d) { SQLiteDatabase db = this.getWritableDatabase(); ContentValues contentvalues = new ContentValues(); contentvalues.put("Mapid", a); contentvalues.put("X_CORD", b); contentvalues.put("Y_CORD", c); contentvalues.put("X_AXIS", x); contentvalues.put("Y_AXIS", y); contentvalues.put("Z_AXIS", z); contentvalues.put("FINAL", d); db.insert("Fingerprint", null, contentvalues); db.close(); } public void deleteAllFingerprints() { SQLiteDatabase db = this.getWritableDatabase(); db.delete(TABLENAME, null, null); // delete all fingerprints db.close(); } public Cursor getAllData() { SQLiteDatabase db = this.getWritableDatabase(); Cursor cur = db.rawQuery("select * from " + TABLENAME, null); return cur; } } 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM