手机短信数据库路径:
/data/data/com.android.providers.telephony/database/mmssms 表sms
thread_id回话的id,发件人和收件人是同一个id
主机名:
系统提供的内容提供者JB\packages\providers\TelephonyProvider
清单文件AndroidManifest.xml中主机名: android:authorities="mms"
表名:
代码JB\packages\providers\TelephonyProvider\src\com\android\providers\telephony\SmsProvider.java
静态代码块 sURLMatcher.addURI("sms", null, SMS_ALL);
---------------------------------------------------------------------------------
获取短信,通过内容提供者
ContentResolver resolver=getContentResolver();
Uri uri = Uri.parse("content://sms");
Cursor cursor = resolver.query(uri, null, null, null, null);
TextView tv_show = (TextView) findViewById(R.id.tv_show);
while(cursor.moveToNext()){
String address = cursor.getString(cursor.getColumnIndex("address"));
String type = cursor.getString(cursor.getColumnIndex("type"));
long date = cursor.getLong(cursor.getColumnIndex("date"));
String body = cursor.getString(cursor.getColumnIndex("body"));
String str="";
if("1".equals(type)){
str+="发送";
}else{
str+="接受";
}
tv_show.setText("类型:"+str+"地址:"+address+"时间:"+date+"内容:"+body+"\n");
}
cursor.close();
------------------------------------------------
发送假短信
new Thread(){
public void run() {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
ContentResolver reslover=getContentResolver();
Uri uri=Uri.parse("content://sms/");
ContentValues values=new ContentValues();
values.put("type", "1");
values.put("body", "您的建行收到转账Y500,000,000,000");
values.put("address", 95533);
values.put("date", System.currentTimeMillis());
reslover.insert(uri, values);
};
}.start();