我正在开发一个Android项目。其中我使用了SMS Scheduling
。为此,我创建了SQLite数据库。在数据库中创建了SMSTABLE。在SMSTABLE中,列名为“status”。其中定义了草稿消息,预定,已发送或未发送消息。 For draft status = 0, for scheduled status = 1, for sent status = 2,for unsent status = 3
。默认情况下,状态值设置为1.当我更新草稿状态时,它不起作用(更新到db)。
以下是我的DBHepler Class
代码的一些部分:
private final String DATABASE_CREATE_SMS_TABLE = "create table " + DATABASE_SMS_TABLE
+ " ("
+ KEY_ID + " integer primary key autoincrement, "
+ KEY_MESSAGE + " text, "
+ KEY_DATE + " text, "
+ KEY_START_TIME_MILLIS + " long, "
+ KEY_END_TIME_MILLIS + " long, "
+ KEY_MSG_PARTS + " integer default 0, "
+ KEY_STATUS + " integer default 1, "
+ KEY_REPEAT_MODE + " integer, "
+ KEY_REPEAT_STRING + " text);";
/***
* @param message
* @param date
* @param parts //* @param timeInMilis
* @param repeatMode
// * @param repeatString
* @return smsId for the newly scheduled SMS
* @detail Schedules a new SMS using the details passed as parameters
*/
public long scheduleSms(String message, String date, int parts, long startTimeInMilis, long endTimeInMilis, int repeatMode) {
ContentValues addValues = new ContentValues();
addValues.put(KEY_MESSAGE, message);
addValues.put(KEY_DATE, date);
// addValues.put(KEY_TIME_MILLIS, timeInMilis);
addValues.put(KEY_START_TIME_MILLIS, startTimeInMilis);
addValues.put(KEY_END_TIME_MILLIS, endTimeInMilis);
addValues.put(KEY_MSG_PARTS, parts);
addValues.put(KEY_REPEAT_MODE, repeatMode);
// addValues.put(KEY_REPEAT_STRING, repeatString);
return db.insert(DATABASE_SMS_TABLE, null, addValues);
}
/***
* @param smsId
* @detail Sets an SMS as Draft
*/
public void setAsDraft(long smsId) {
setStatus(smsId, Constants.SMS_STATUS_DRAFT);
}
/***
* @param smsId
* @param status
* @detail Sets a particular status for an SMS. Status is passed as parameter
*/
public void setStatus(long smsId, int status) {
ContentValues cv = new ContentValues();
cv.put(KEY_STATUS, status);
db.update(DATABASE_SMS_TABLE, cv, KEY_ID + "=" + smsId, null);
}
以下是我调用更新草稿状态的代码:
dbHelper.open();
boolean isDraft = false;
for (int i = 0; i < messagesList.size(); i++) {
parts = smsManager.divideMessage(messagesList.get(i).getMessage());
long smsId = dbHelper.scheduleSms(messagesList.get(i).getMessage(), dateString, parts.size(), startTime, endTime, defaultRepeatMode);
dbHelper.setAsDraft(smsId);
isDraft = true;
}