要读取手机短信和插入短信,还必须加上一下权限:
<uses-permission android:name="android.permission.READ_SMS"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
下面来分析一下代码:第一个按钮通过ContentProvider间接获取了一些短信的信息,保存在一个List数组下。我们先导出Android系统的sms表看一下:
总共有17个字段这么多,显然不是我们都关心的,这里只要了address,date, body, type四个字段,分别表示对方号码,短信时间,短信内容,发送还是接收。第二个按钮把短信相关信息存储在一个序列化的XML文件中,方便查看。
放上XML截图:
可以看出此时手机上共有5条短信,大功告成。
修改系统短信数据库
真正的黑科技来了,相信大家知道有些不法分子能冒充各种号码发布虚假信息,如10086啥的,下面示范一下用95533(建行)发送一条愚人节贺卡。
代码如下:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void click(View v){
Thread t = new Thread(){
@Override
public void run() {
ContentResolver cr = getContentResolver();
ContentValues values = new ContentValues();
values.put("address", 95533);
values.put("type", 1);
values.put("date", System.currentTimeMillis());
values.put("body", "您尾号为9999的信用卡收到1,000,000RMB转账,请注意查收");
cr.insert(Uri.parse("content://sms"), values);
}
};
t.start();
}
}












