0
我的應用程序會聽取新的sms'n。現在,當我收到一個新的我創建一個SmsMessage。爲了進一步操作這個,我需要消息的Id。所以我查詢這樣的內容解析器:從pdus對象獲取messageID
final Bundle bundle = intent.getExtras();
try {
if (bundle != null) {
//get the protocol discription unit (SMSs)
final Object[] pdusObj = (Object[]) bundle.get("pdus");
for (int i = 0; i < pdusObj.length; i++) {
SmsMessage currentMessage = SmsMessage.createFromPdu((byte[]) pdusObj[i]);
String phoneNumber = currentMessage.getDisplayOriginatingAddress();
String message = currentMessage.getDisplayMessageBody();
long time_rcv = currentMessage.getTimestampMillis();
String [] relevantColumns = {"_id", "address", "body", "date_sent"};
Cursor cursor = context.getContentResolver().query(
Uri.parse("content://sms/inbox"),
relevantColumns,
"address = '" + phoneNumber + "' AND body = '" + message
+ "' AND date_sent = '" + time_rcv + "'",
null,
null);
if (cursor != null && cursor.moveToFirst()) {
int id = Integer.valueOf(cursor.getString(0));
Log.d(TAG,"ID SMS: " + id);
}
else
Log.e(TAG,"Failed to find ID");
Log.i(TAG, "FROM: " + phoneNumber + "; MSG: " + message);
Toast.makeText(context, "From: " + phoneNumber + ", MSG: " + message, Toast.LENGTH_LONG).show();
}
}
} catch (Exception e) {
Log.e(TAG, "Exception receiver" + e);
}
無論發生什麼,它從來沒有發現消息。