2017-05-16 9 views
0

私はAndroidプラットフォームでは新しいです。ライブ磁気センサーデータをストレージのsQLiteデータベースに直接記録したい。私は磁気データを取得するコードを書いたが、私はデータベースを作成することができません。私は以下のコードを貼り付けました。どんな助けも素晴らしいだろう。ライブ磁気センサーデータのための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:データベースのコードはあまり機能していません。..テーブルが作成されていません。

答えて

0

私は自分自身で問題を分類しました。データベースクラスに問題がありました。私はデータベースヘルパークラスのために以下のコードを使用しました。

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

関連する問題