通过 contentObserver 在外出时获取短信号码
Posted
技术标签:
【中文标题】通过 contentObserver 在外出时获取短信号码【英文标题】:get SMS number at outgoing time by contentObserver 【发布时间】:2011-07-30 12:03:20 【问题描述】:这是我从默认模拟器发送短信时尝试获取短信号码的代码,但它不起作用。 请检查并告诉我
谢谢
package com.SMSOberver5;
import android.app.Activity;
import android.database.ContentObserver;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.widget.Toast;
public class SMSOberver5 extends Activity
/** Called when the activity is first created. */
Handler handler = null;
@Override
public void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
setReceiver();
private SMSObserver smsSentObserver = new SMSObserver(new Handler());
private void setReceiver()
this.getContentResolver().registerContentObserver(
Uri.parse("content://sms/sent"), true, smsSentObserver);
class SMSObserver extends ContentObserver
public SMSObserver(Handler handler)
super(handler);
@Override
public void onChange(boolean selfChange)
try
//startManagingCursor(c);
super.onChange(selfChange);
System.out.println("body");
System.out.println("number");
Cursor sms_sent_cursor = SMSOberver5.this.managedQuery(Uri
.parse("content://sms/sent"), null, "type=?",
new String[] "2" , null);
int smsEntriesCount = sms_sent_cursor.getCount();
String[] body = new String[smsEntriesCount];
String[] number = new String[smsEntriesCount];
if (sms_sent_cursor.moveToFirst())
for (int i = 0; i < smsEntriesCount; i++)
body[i] = sms_sent_cursor.getString(sms_sent_cursor.getColumnIndexOrThrow("body")).toString();
number[i] = sms_sent_cursor.getString(sms_sent_cursor.getColumnIndexOrThrow("address")).toString();
sms_sent_cursor.moveToNext();
Toast.makeText(getBaseContext(), "text", Toast.LENGTH_LONG).show();
sms_sent_cursor.close();
catch(Exception e)
【问题讨论】:
您遇到了什么错误以及您想要做什么。 看,我想要我们发送短信时的电话号码(用于块模拟器短信)。我想停止传出短信以获取 pertivular 号码。所以首先我需要编号所以这是代码........ 【参考方案1】:请查看此代码:http://gbandroid.googlecode.com/svn-history/r46/trunk/MobileSpy/src/org/ddth/android/monitor/observer/AndroidSmsWatcher.java
它创建一个 ContentObserver,监听 sms 表,然后获取传出的 sms 并获取它们的几个信息。
【讨论】:
我们应该为此实现其他类还是如何工作?以上是关于通过 contentObserver 在外出时获取短信号码的主要内容,如果未能解决你的问题,请参考以下文章
安卓ContentObserver模式获取短信用正则自己主动填充验证码