注册一个内容观察者:
getContentResolver().registerContentObserver(uri, true, new SMSContentResolver(null));
uri:你要监听的东西(短信----->content://sms/,电话)
Boolean:如果是true,代表uri的前缀满足就可以了;false的话就要全部满足
resolver:内容观察者
private class SMSContentResolver extends ContentObserver{
public SMSContentResolver(Handler handler) {
super(handler);
}
@SuppressLint("NewApi")
@Override
public void onChange(boolean selfChange, Uri uri) {
System.out.println("接收到短信的变化了");
Cursor cursor = getContentResolver().query(uri, new String[]{"address","body" }, null, null, null);
String phoneNumber = cursor.getString(0);
String messageContent = cursor.getString(1);
System.out.println("电话号码是:"+ phoneNumber);
System.out.println("短信内容是:" + messageContent);
super.onChange(selfChange, uri);
}
}
最后记得在androidmainfest.xml文件中添加读取短信和写短信的权限
<uses-permission android:name="android.permission.WRITE_SMS"/>
<uses-permission android:name="android.permission.READ_SMS"/>