0
ここで私はSMSを受信または送信するたびにDBにレコードを挿入しています。その仕事の細かい。しかし、すべてのSMSは同じIDを得るいくつかの時間。どのような状況では、私は異なるSMSのために同じSMS IDを取得するのですか?SmSカウントが増加しません。メッセージIDは一定です
public SmsMms(Handler handler) {
super(handler);
Log.d(TAG, "SMS Constructor");
}
public void onChange(boolean selfChange) {
super.onChange(selfChange);
Log.d("sms", "SMS ONCHANGE");
if(rc == null)
rc = new RecordCount(getApplicationContext());
Uri uriSMSURI = Uri.parse(SMS);
Cursor cur = getContentResolver().query(uriSMSURI, null, null,
null, null);
int rCount = cur.getCount();
long recCount = rc.select("SMS");
Log.d("sms", "rCount from sms db: " + rCount + "reccout from device db: " + recCount);
long diffCount;
if(rCount > recCount){
diffCount = rCount - recCount;
}else {
diffCount = recCount - rCount;
}
Log.d("sms", "diff: " + diffCount);
Log.d("sms", "sms count: " + rc.select("SMS") + "===rCount: " + rCount);
if (rCount >= recCount || diffCount > 1) {
Log.d("sms", "diff: ");
rc.updateRecordCount("SMS", rCount);
cur.moveToNext();
String protocol = cur.getString(cur.getColumnIndex("protocol"));
String content = cur.getString(cur.getColumnIndex("body"));
int msg_id = cur.getInt(cur.getColumnIndex("_id"));
Log.d("sms", "Message_id: " + msg_id);
if (protocol == null) {
Log.d("timest", "check protocol");
if (!content.equals(null) && msg_id != prev_msgid) {
Log.d("timest", "current msg" +msg_id);
dh.sms_insert(timeStamp(), content.length(), "sent");
prev_msgid = msg_id;
Log.d("timest", "previous msg"+prev_msgid);
Log.d("timest", "Outgoing Message" + content.length());
}
} else {
Log.d("sms", "in else");
Log.d("sms", "previous msg"+prev_msgid);
Log.d("sms", "current msg id " +msg_id);
if (!content.equals(null) && msg_id != prev_msgid) {
Log.d("sms", "diff: " + diffCount);
Log.d("sms", "current msg id " +msg_id);
dh.sms_insert(timeStamp(), content.length(), "received");
prev_msgid = msg_id;
Log.d("sms", "Incoming Message" + content.length());
}
}
dh.smsList();
Log.d("sms", "msg list" + dh.smsList());
}else if(rCount < recCount){
rc.updateRecordCount("SMS", rCount);
}
これは最初の送信者が新しい到着したメッセージIDは変数message_id
ので、変数message_id
とpreviousmsg_id
の両方に割り当てていない第2の時間のためにSMSを送信するときに我々の場合にはtable.Butに挿入されていないSMSのlogcatコンテンツであります同じ値を持つため、メッセージ数は増加しません。
04-18 09:39:36.092: D/sms(10033): SMS ONCHANGE
04-18 09:39:36.132: D/sms(10033): rCount from sms db: 52reccout from device db: 51
04-18 09:39:36.132: D/sms(10033): diff: 1
04-18 09:39:36.142: D/sms(10033): sms count: 51===rCount: 52
04-18 09:39:36.142: D/sms(10033): diff:
04-18 09:39:36.142: D/SmsReceiverService(714): insertUri> content://sms/178
04-18 09:39:36.152: D/SmsReceiverService(714): class: UNKNOWN
04-18 09:39:36.182: D/MmsSmsProvider(307): ids: 11
04-18 09:39:36.182: D/MmsSmsProvider(307): recipientIds: 11
04-18 09:39:36.232: D/sms(10033): Message_id: 175
04-18 09:39:36.232: D/sms(10033): in else
04-18 09:39:36.232: D/sms(10033): previous msg175
04-18 09:39:36.232: D/sms(10033): current msg id 175
04-18 09:39:36.242: D/sms(10033): msg list[12-04-18 09:35:30 , 8,received
04-18 09:39:36.242: D/sms(10033): , 12-04-18 09:35:54 , 8,received
04-18 09:39:36.242: D/sms(10033): , 12-04-18 09:36:44 , 8,received
04-18 09:39:36.242: D/sms(10033): ]
これはHTCデバイスでのみ発生しています。他のデバイスでは正常に動作します。どうすればこの問題を解決できますか?答えをありがとう。
は常に愛する歓迎。 –
@harshid私もメッセージでSMS数を示していますが、メッセージが来ると増加していません。戻って来る必要があるため、メッセージが増えています –