Android 趣味应用—— 短信编辑器

修改短信数据库,从而生成任意手机号发送的短信。

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.dudon.fakesms">

    <uses-permission android:name="android.permission.READ_SMS" />
    <uses-permission android:name="android.permission.WRITE_SMS" />

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:gravity="center"
            android:text="短信发送者:"
            android:textSize="18sp" />

        <EditText
            android:id="@+id/get_phone"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_weight="7"
            android:inputType="phone" />

    </LinearLayout>

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1">

        <EditText
            android:id="@+id/get_message"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_margin="20dp"
            android:hint="短信内容" />

    </ScrollView>


    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <Button
            android:id="@+id/get_time"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:text="添加当前时间" />

        <Button
            android:id="@+id/send_message"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_weight="4"
            android:text="发送短信" />

    </LinearLayout>


</LinearLayout>

MainActivity.java

public class MainActivity extends AppCompatActivity {
    private int phoneNum;
    private String textSMS;
    private String currentTime;
    private Button sendMessage;
    private Button getTime;
    private EditText getPhone;
    private EditText getMessage;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //注册控件
        sendMessage = (Button) findViewById(R.id.send_message);
        getTime = (Button) findViewById(R.id.get_time);
        getPhone = (EditText) findViewById(R.id.get_phone);
        getMessage = (EditText) findViewById(R.id.get_message);

        //获取当前时间
        getTime.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                textSMS = getMessage.getText().toString();
                SimpleDateFormat formatter = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
                Date curDate = new Date(System.currentTimeMillis());//获取当前时间
                currentTime = formatter.format(curDate);
                textSMS = textSMS + currentTime;
                getMessage.setText(textSMS);
            }
        });
        //发送短信
        sendMessage.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (TextUtils.isEmpty(getPhone.getText().toString())) {
                    Toast.makeText(MainActivity.this, "电话号码未填写", Toast.LENGTH_SHORT).show();
                    return;
                }
                if (TextUtils.isEmpty(getMessage.getText().toString())) {
                    Toast.makeText(MainActivity.this, "短信内容未填写", Toast.LENGTH_SHORT).show();
                    return;
                }
                //获取电话号码和短信内容
                phoneNum = Integer.parseInt(getPhone.getText().toString());
                textSMS = getMessage.getText().toString();

                //开启多线程
                Thread thread = new Thread() {
                    @Override
                    public void run() {

                        ContentResolver resolver = getContentResolver();
                        ContentValues values = new ContentValues();
                        values.put("address", phoneNum);
                        values.put("type", 1);
                        values.put("date", System.currentTimeMillis());
                        values.put("body", textSMS);
                        resolver.insert(Uri.parse("content://sms"), values);
                    }
                };
                thread.start();
                Toast.makeText(MainActivity.this, "短信成功生成", Toast.LENGTH_SHORT).show();
            }
        });
    }
}

运行截图:

posted @ 2016-01-19 02:49  woider  阅读(1257)  评论(0编辑  收藏  举报