直接上项目代码,技术很简单就是一些对于数据库的操作,不得不感慨安卓安全性实在是。。。。。。
主activity
package com.android.fromdaemonwry ;
//import java.sql.Date;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date ;
import com.thisdaemonwry.messageliar.R;
import android.view.View.OnClickListener;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.ContentResolver;
import android.content.ContentValues;
import android.content.DialogInterface;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.DatePicker.OnDateChangedListener;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.TimePicker;
import android.widget.TimePicker.OnTimeChangedListener;
import android.widget.Toast;
@SuppressLint("NewApi")
public class Main extends Activity {
private String num ;
private String msg ;
private int lyear,lmonth,lday,lhour,lminute ;
private int FLAG=2 ; //1表示发件,2表示收件
private RadioGroup group ;
private EditText dateEt,timeEt ;
private EditText numText ;
private EditText msgtext ;
private Button insert ;
private TimePicker timePicker ;
private DatePicker datePicker ;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
this.numText = (EditText) findViewById(R.id.num) ;
this.msgtext = (EditText) findViewById(R.id.text) ;
this.insert = (Button) findViewById(R.id.insert) ;
this.group = (RadioGroup)findViewById(R.id.group) ;
this.datePicker = (DatePicker)findViewById(R.id.datePicker) ;
this.timePicker = (TimePicker)findViewById(R.id.timePicker) ;
this.dateEt = (EditText)findViewById(R.id.dateEt) ;
this.timeEt = (EditText)findViewById(R.id.timeEt) ;
//System.out.println("时间:"+lhour+" "+lminute) ;
/*
* DatePicker监听
*/
this.datePicker.setCalendarViewShown(false);
Calendar cal = Calendar.getInstance() ;
this.lyear = cal.get(Calendar.YEAR) ;
this.lmonth = cal.get(Calendar.MONTH)+1 ;
this.lday = cal.get(Calendar.DAY_OF_MONTH) ;
this.lhour = cal.get(Calendar.HOUR_OF_DAY) ;
this.lminute = cal.get(Calendar.MINUTE) ;
dateEt.setText("你选择的日期是"+lyear+"年"+(this.lmonth)+"月"+lday+"日");
this.datePicker.init(lyear, lmonth-1, lday, new OnDateChangedListener() {
@Override
public void onDateChanged(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
// TODO Auto-generated method stub
dateEt.setText("你选的日期是"+year+"年"+(monthOfYear+1)+"月"+dayOfMonth+"日");
lyear = year ;
lmonth = monthOfYear +1;
lday = dayOfMonth ;
}
});
this.timeEt.setText("你选择的时间:"+lhour+"点"+lminute+"分");
this.timePicker.setOnTimeChangedListener(new OnTimeChangedListener() {
@Override
public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
// TODO Auto-generated method stub
lhour = hourOfDay ;
lminute = minute ;
timeEt.setText("你选择的时间:"+lhour+"点"+lminute+"分");
}
});
this.group.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
// TODO Auto-generated method stub
RadioButton rb = (RadioButton)findViewById(checkedId) ;
if(rb.getId() == R.id.fajian)
{
FLAG = 1 ;
}else if(rb.getId() == R.id.shoujian)
{
FLAG = 2 ;
}
}
});
this.insert.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
num = numText.getText().toString() ;
msg = msgtext.getText().toString() ;
if(num.equals("") || msg.equals(""))
{
Toast.makeText(getApplicationContext(), "电话号码和短信内容不能为空!", Toast.LENGTH_LONG) ;
return ;
}
/*
* 下面开始执行插入操作
*/
SimpleDateFormat format = new SimpleDateFormat( "yyyy-MM-dd HH:mm" );
//String time="1970-01-06 11:45:55";
String time = lyear+"-"+lmonth+"-"+lday+" "+lhour+":"+lminute;
Date date = null;
try {
date = (Date) format.parse(time);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
ContentValues value = new ContentValues() ;
ContentResolver cr = getContentResolver() ;
value.put("address", num);
value.put("body",msg) ;
java.sql.Date sqldate=new java.sql.Date(date.getTime());
value.put("date", sqldate.getTime());
if(FLAG == 1)
{
value.put("type", 4);
} else value.put("type", 1);
if(FLAG == 1)
{
getContentResolver().insert(Uri.parse("content://sms/sent"), value) ;
//cr.insert(Uri.parse("content://sms/sent"), value) ;
}
else
{
getContentResolver().insert(Uri.parse("content://sms/inbox"), value) ;
//cr.insert(Uri.parse("content://sms/inbox"), value) ;
}
cr = null ;
AlertDialog alert ;
AlertDialog.Builder builder = new AlertDialog.Builder(Main.this) ;
builder.setTitle("插入成功") ;
builder.setMessage("短信伪造成功,剩下的你懂的。。") ;
builder.setPositiveButton("查看已伪造的短信", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-gen
Intent intent = new Intent();
intent.setClassName("com.android.mms","com.android.mms.ui.ConversationList");
startActivity(intent);
}
}) ;
alert = builder.create() ;
alert.show();
}
});
}
}
布局xml
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:background="@drawable/from"
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<EditText
android:id="@+id/num"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="在此输入电话号码"
android:inputType="number"
android:background="@drawable/bg_sms_input"/>
<EditText
android:id="@+id/text"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="在此输入要制造的短信内容"
android:layout_marginTop="18dp"
android:gravity="top"
android:background="@drawable/bg_sms_input"
android:minLines="3"/>
<DatePicker android:id="@+id/datePicker"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:startYear="1975"
android:endYear="2100"
android:layout_gravity="center_horizontal"/>
<EditText android:id="@+id/dateEt"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:cursorVisible="false"
android:editable="false"/>
<TimePicker android:id="@+id/timePicker"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"/>
<EditText android:id="@+id/timeEt"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:cursorVisible="false"
android:editable="false"/>
<RadioGroup
android:id="@+id/group"
android:layout_marginTop="10dp"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<RadioButton
android:id="@+id/fajian"
android:text="插入已发短信"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<RadioButton
android:id="@+id/shoujian"
android:text="插入已收短信"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</RadioGroup>
<Button
android:id="@+id/insert"
android:textSize="25sp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="8dp"
android:background="@drawable/selector"
android:layout_gravity="center_horizontal"
android:layout_marginTop="10dp"
android:text="插入"/>
</LinearLayout>
</ScrollView>
效果图