配置信息manifes中加入权限
<uses-permission android:name="android.permission.READ_SMS"/>
<uses-permission android:name="android.permission.RECEIVE_SMS"/>
<uses-permission android:name="android.permission.SEND_SMS"/>
之后main函数中 的代码
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getContentResolver().registerContentObserver(Uri.parse("content://sms"),true,
new MyObserver(new Handler()));
}
private final class MyObserver extends ContentObserver {
public MyObserver(Handler handler){
super(handler);
}
@Override
public void onChange(boolean selfChange) {
Cursor cursor=getContentResolver().query(Uri.parse("content://sms/inbox"),
null,null,null,null);
while (cursor.moveToNext()){
StringBuilder sb=new StringBuilder();
sb.append("address=").append(cursor.getString(cursor.getColumnIndex("address")));
sb.append(";subject").append(cursor.getString(cursor.getColumnIndex("subject")));
sb.append(";body").append(cursor.getString(cursor.getColumnIndex("body")));
sb.append(";time").append(cursor.getLong(cursor.getColumnIndex("date")));
System.out.println("用户发送出去的信息"+sb.toString());
}
}
}
}
在虚拟机中 开启sms权限
打开之后,我们打开 写的 myapplication
并且用虚拟机发送信息
然后查看logcat 中debug
就可以查到 信息
数据库的位置