0
我有用短信導入數據的代碼!現在我需要一種方法將數據從數據庫導出到IncomingSMSReceiver上的變量(我可能會爲每個字段創建一個方法);我可以將單個單元格值導出爲變量嗎?將單個單元格值字符串導出到變量的SQlite方法
E.g我試圖做onoma列,但我不知道我應該使用什麼數據庫方法和什麼SQL,以及如何導出它。
DatabaseHelper.java
package toulios.ptixiakh.toulios;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class DatabaseHelper extends SQLiteOpenHelper {
public static final String DATABASE_NAME="Toulios.db";
public static final String TABLE_NAME="Foitites_table";
public static final String Col_AM="AM";
public static final String Col_ONOMA="ONOMA";
public static final String Col_EPITHETO="EPITHETO";
public static final String Col_EXAMINO="EXAMINO";
public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table " + TABLE_NAME+"(AM INTEGER PRIMARY KEY,ONOMA TEXT,EPITHETO TEXT, EXAMINO INTEGER)");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS"+TABLE_NAME);
onCreate(db);
}
public boolean eisagoghfititi(String am,String onoma,String epitheto,String examino)
{
SQLiteDatabase db=this.getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put(Col_AM,am);
contentValues.put(Col_ONOMA,onoma);
contentValues.put(Col_EPITHETO,epitheto);
contentValues.put(Col_EXAMINO,examino);
long result = db.insert(TABLE_NAME,null,contentValues);
if(result == -1)
return false;
else
return true;
}
public String exagwgh_onoma(String am){
String str="";
final String SQL_SELECT_QUERY = "SELECT "+DatabaseHelper.Col_ONOMA+" FROM "+DatabaseHelper.TABLE_NAME+" WHERE "+DatabaseHelper.Col_AM+" = "+am;
DatabaseHelper queryDbHelperObj = new DatabaseHelper(this);
SQLiteDatabase sqLiteDatabase = queryDbHelperObj.getReadableDatabase();
Cursor cursor = sqLiteDatabase.rawQuery(SQL_SELECT_QUERY,null);
if (cursor.moveToFirst()) {
str = cursor.getString(cursor.getColumnIndex("content"));
}
cursor.close();
return str;
}
}
IncomingSMSReceiver.java
public class IncomingSMSReceiver extends BroadcastReceiver{
private static final String SMS_RECEIVED ="android.provider.Telephony.SMS_RECEIVED";
@Override
public void onReceive(Context _context, Intent _intent) {
if (_intent.getAction().equals(SMS_RECEIVED)) {
Bundle bundle = _intent.getExtras();
if (bundle != null) {
Object[] pdus = (Object[]) bundle.get("pdus");
SmsMessage[] messages = new SmsMessage[pdus.length];
for (int i = 0; i < pdus.length; i++)
messages[i] = SmsMessage
.createFromPdu((byte[]) pdus[i]);
for (SmsMessage message : messages)
{
String strPhoneNo = message.getOriginatingAddress();
String msg = message.getMessageBody();
if (msg.startsWith("01"))
{
try {
final String[] temaxismeno_sms = msg.split(":");
DatabaseHelper dbHelper = new DatabaseHelper(_context.getApplicationContext());
dbHelper.eisagoghfititi(temaxismeno_sms[1],temaxismeno_sms[2],temaxismeno_sms[3],temaxismeno_sms[4]);
Toast.makeText(_context, "Egine eisagwgh fititi!!", Toast.LENGTH_LONG).show();
String message1 = "H Eisagwgh egine sthn vash.";// minima pou tha stalthei
SmsManager sms = SmsManager.getDefault();
sms.sendTextMessage(strPhoneNo, null, message1, null, null);
Toast.makeText(_context, "O fititis idopiithike", Toast.LENGTH_LONG).show();
}
catch (Exception e)
{
Toast.makeText(_context, "SMS failed, please try again.",
Toast.LENGTH_LONG).show();
e.printStackTrace();
}
}
if (msg.startsWith("02"))
{
final String[] temaxismeno_sms = msg.split(":");
String apotelesma;
DatabaseHelper dbHelper = new DatabaseHelper(_context.getApplicationContext());
apotelesma = dbHelper.exagwgh_onoma(temaxismeno_sms[1]);
String message2 = "To onoma tou am pou epilexate einai "+apotelesma;
SmsManager sms = SmsManager.getDefault();
sms.sendTextMessage(strPhoneNo, null, message2, null, null);
}
}
}
}
}
}
如果你看到我的代碼,我需要一個方法,有一個參數巫婆是我(如id),我想只返回onoma列他們給一個單一的字符串作爲返回到變量 – Fmetal
@Fmetal - 所以你想獲取列'onoma',你的id將會是'am',對吧?在這種情況下,只需相應地更改SQL語句即可。請檢查我上面編輯的答案。 –
我像你說的那樣做了一些修改以適應我的代碼,但是我在(this)上遇到問題;我也編輯了頂部的代碼! – Fmetal