पता करें मैं एक फोन से आउटगोइंग एसएमएस संदेशों की संख्या गिनने के लिए आवेदन करने की कोशिश कर रहा हूं। वर्तमान में मैं निम्नलिखित कोड है:एंड्रॉइड: एसएमएस आउटगोइंग, गलत गणना
private void listenForSMS(){
Log.v("SMSTEST", "STARTED LISTENING FOR SMS OUTGOING");
Handler handle = new Handler(){};
SMSObserver myObserver = new SMSObserver(handle);
ContentResolver contentResolver = getContentResolver();
contentResolver.registerContentObserver(Uri.parse("content://sms"),true, myObserver);
}
private class SMSObserver extends ContentObserver{
int count = 0;
String lastMessage = null;
public SMSObserver(Handler handler) {
super(handler);
}
public void onChange(boolean selfChange) {
super.onChange(selfChange);
Log.v("SMSTEST", "HIT ON CHANGE");
Uri uriSMSURI = Uri.parse("content://sms");
Cursor cur = getContentResolver().query(uriSMSURI, null, null,
null, null);
cur.moveToNext();
String protocol = cur.getString(cur.getColumnIndex("protocol"));
if(protocol == null){
count++;
Log.v("SMSTEST", "SMS SENT: count: " + count);
String content = cur.getString(cur.getColumnIndex("body"));
}else{
Log.v("SMSTEST", "SMS RECIEVED");
}
}
}
जब मैं एक एक पृष्ठ एसएमएस संदेश भेजने, onChange
3 बार कहा जाता है। जब मैं दो पेज एसएमएस संदेश भेजता हूं, onChange
को 4 बार कहा जाता है। 3 पृष्ठ संदेश, जिसे 5 बार कहा जाता है; और इसी तरह।
नोट:, और अलावा कुछ भी नहीं "सामग्री: // एसएमएस" onChange
हो गया है के नाम से जाना: मैं इस तरह के "// एसएमएस/भेजा सामग्री" के रूप में Uri.parse("content://sms")
के अन्य रूपों की कोशिश की है।
मैं एक आउटगोइंग एसएमएस संदेश को विशिष्ट रूप से अलग कैसे कर सकता हूं और भेजे गए एसएमएस संदेशों की सटीक गणना कैसे प्राप्त कर सकता हूं?
मुझे एक समाधान मिला जो वास्तव में काफी सरल है। बस थोड़ी देर लूप करें और क्वेरी करें जहां दिनांक> = कुछ समय। –