码迷,mamicode.com
首页 > 其他好文 > 详细

一个半成小作品-短信伪造

时间:2015-08-28 19:34:28      阅读:252      评论:0      收藏:0      [点我收藏+]

标签:

代码其实很简单,实现功能也很简单,目前已实现功能:

1、可以设置短信延迟时间

2、有声音、震动提示

3、实现状态栏无法删除,只能点开后删除

4、实现状态栏提示

5、实现点击运行后App窗口自动关闭

但仍然遗留有问题:

1、状态栏点击提示后无法转到系统收件箱界面

2、在双卡双待手机里面短信下面无法标识号码归属地

技术分享

相关源码:

java:

package com.example.sms;

import android.app.Activity;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.ContentResolver;
import android.content.ContentValues;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.provider.Telephony.Sms.Conversations;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;

public class MainActivity extends Activity implements OnClickListener {

    private Button bt = null;
    private EditText et_number = null;
    private EditText et_body = null;
    private EditText et_time = null;
    
        //号码和短信内容提取
    private String str_number = null;
    private String str_body = null;
    
    //休眠时间设置
    private long time = 0;
    
    private Notification note = null;
     
        //初始化
    private void init(){
        bt = (Button)findViewById(R.id.bt);
        et_number = (EditText)findViewById(R.id.et_number);
        et_body = (EditText)findViewById(R.id.et_body);
        et_time = (EditText)findViewById(R.id.et_time);
    }
    
        //主进程
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //my code below
        
        //初始化
        init();
        
        //按钮点击事件
        bt.setOnClickListener(this);
        
        
                
    }


       //状态栏设置    
    private void sendwarm(){
        
        NotificationManager noteMng = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
        //创建一个意图,确定点击状态栏后跳转的页面
        Intent i = new Intent();
//        i.setClassName(this, "com.android.mms.ui.ConversationList");
        PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, i, 0);
        Notification.Builder builder = new Notification.Builder(this).setTicker("您有一条新短信")
                .setSmallIcon(R.drawable.sym_action_email);
        note = builder.setContentIntent(pendingIntent).setContentTitle(str_number).setContentText(str_body).build();
        //默认提示音
        note.defaults |= Notification.DEFAULT_SOUND;
        //默认震动模式
        note.defaults |= Notification.DEFAULT_VIBRATE;
        //默认LED提示模式
        note.defaults |= Notification.DEFAULT_LIGHTS;
        //重复上面的各种提示模式
//        note.flags |= Notification.FLAG_INSISTENT;
        //点击查看后跳转
        note.flags |= Notification.FLAG_AUTO_CANCEL;
        //状态栏无法清除
        note.flags |= Notification.FLAG_NO_CLEAR;
        
        
        noteMng.notify(110, note);
        
        
        
        
        
    }

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        
        str_number = et_number.getText().toString().trim();
        str_body = et_body.getText().toString().trim();
        time = Integer.valueOf(et_time.getText().toString().trim()) * 1000;
        
        switch(v.getId()){
        
        case R.id.bt:
            new Thread(){
                public void run(){
                    try {
                        //延迟20秒
                        Thread.sleep(time);
                        
                        //创建一个接收对象
                        ContentResolver resolver = getContentResolver();
                        Uri uri = Uri.parse("content://sms");
                        ContentValues values = new ContentValues();
                        values.put("address", str_number);
                        values.put("type", 1);
                        values.put("date", System.currentTimeMillis());
                        values.put("service_center", "+8613800270503");
                        values.put("body", str_body);
                        resolver.insert(uri, values);
                        //消息栏提示
                        sendwarm();
                    } catch (InterruptedException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                    
                }
            }.start();
            //关闭页面
            this.finish();
            break;
        }
        
            
            
    }

}

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="wrap_content"
            android:textSize="20sp"
            android:layout_marginLeft="5dp"
            android:text="发送号码"
            />
        <EditText 
            android:id="@+id/et_number"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="请输入电话号码"
            android:inputType="text"
            />
    </LinearLayout>
    
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
          android:orientation="horizontal"
        >
        <TextView 
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="20sp"
            android:layout_marginLeft="5dp"
            android:text="延时时间"
            />
        <EditText 
            android:id="@+id/et_time"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="时间以秒为单位"
            android:inputType="number"
            />
    </LinearLayout>
    
    <TextView 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="20sp"
        android:text="短信内容"
        android:layout_marginLeft="5dp"
        />
    
    <EditText 
        android:id="@+id/et_body"
        android:layout_weight="200"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:inputType="textMultiLine"
        />
    
    <Button 
        android:id="@+id/bt"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="运行"
        />

</LinearLayout>

 

一个半成小作品-短信伪造

标签:

原文地址:http://www.cnblogs.com/qingriye/p/4767063.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!