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 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

Content://sms的更多相关文章

  1. android Content Provider介绍

    ContentProvider(内容提供者)是Android中的四大组件之一.主要用于对外共享数据,也就是通过ContentProvider把应用中的数据共享给其他应用访问,其他应用可以通过Conte ...

  2. Android网页中tel,sms,mailTo,Intent,Market协议用法总结

     tel:协议---拨打电话 <a href="tel:">调出拨号界面</a> <a href="tel:10086">调 ...

  3. 内容提供者Content Provider

    *读取联系人 StringBuilder sb = new StringBuilder(); // 1:得到中间人. ContentResolver resolver = getContentReso ...

  4. android应用程序监听SMS Intent广播

    当设备接收到一条新的SMS消息时,就会广播一个包含了android.provider.Telephony.SMS_RECEIVED动作的Intent. 对于应用程序监听SMS Intent广播,首先需 ...

  5. android 访问SMS短信收件箱

    访问 SMS收件箱是另一个常见的需求.首先,需要将读取 SMS 的权限   <uses-permission android:name="android.permission.READ ...

  6. 内容提供者(Content Provider)——跨程序共享数据

    内容提供者 Content Provider 应用的数据库是不允许其他应用访问的 内容提供者的作用就是让别的应用访问到你的数据库 自定义内容提供者,继承ContentProvider类,重写增删改查方 ...

  7. 利用内容提供者插入sms(装B程序)

    1.sms的权限配置 <uses-permission android:name="android.permission.READ_SMS"/> <uses-pe ...

  8. Android系统应用Mms之Sms短信发送流程(Mms应用部分)二

    1. 新建一条短信, 在发送短信之前, 首先创建的是一个会话Conversation, 以后所有与该接收人(一个或多个接收人)的消息交互, 都在该会话Conversation中. ComposeMes ...

  9. 建立一个类似于天眼的Android应用程序:第4部分 - 持久收集联系人,通话记录和短信(SMS)

    建立一个类似于天眼的Android应用程序:第4部分 - 持久收集联系人,通话记录和短信(SMS) 电话黑客android恶意软件编程黑客入侵linux 随着我们继续我们的系列,AMUNET应用程序变 ...

随机推荐

  1. C# 如何获取某用户的“我的文档”的目录

    Console.WriteLine(System.Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)); System.E ...

  2. With As 获取 id parentId 递归获取所有

    Declare @Id Int  Set @Id = 5;    ---在此修改父节点    With RootNodeCTE(Id,ParentId)  As  (  Select Id,Paren ...

  3. Ajax的get和post两种请求方式区别

    Ajax的get和post两种请求方式区别 (摘录):http://ip-10000.blog.sohu.com/114437748.html 解get和post的区别. 1. get是把参数数据队列 ...

  4. 重新想象 Windows 8 Store Apps (26) - 选取器: 自定义文件选取窗口, 自定义文件保存窗口

    原文:重新想象 Windows 8 Store Apps (26) - 选取器: 自定义文件选取窗口, 自定义文件保存窗口 [源码下载] 重新想象 Windows 8 Store Apps (26) ...

  5. 乐在其中设计模式(C#) - 代理模式(Proxy Pattern)

    原文:乐在其中设计模式(C#) - 代理模式(Proxy Pattern) [索引页][源码下载] 乐在其中设计模式(C#) - 代理模式(Proxy Pattern) 作者:webabcd 介绍 为 ...

  6. A ResourcePool could not acquire a resource from its primary factory or source

    出处:http://aaron81939097.iteye.com/blog/1144642 原配置: <bean id="dataSource" class="c ...

  7. Android多线程.断点续传下载

    多线程,可断点续传的demo!最早写于2010.7! /** * @brief  主界面      * @author lixp  */ public class HomeActivity exten ...

  8. JVM学习(1)——通过实例总结Java虚拟机的运行机制(转)

    俗话说,自己写的代码,6个月后也是别人的代码……复习!复习!复习!涉及到的知识点总结如下: JVM的历史 JVM的运行流程简介 JVM的组成(基于 Java 7) JVM调优参数:-Xmx和-Xms ...

  9. 马云收购UC你,至于到底是谁宣战

    近日,阿里巴巴官方正式宣布,UC优视全资融入阿里巴巴集团,并组建阿里UC移动事业群. 据阿里方面表示,整个交易对UC的估值远超百度对91无线的估值,外界推測估值近50美元.是中国互联网最大一笔交易.业 ...

  10. 阿里云+wordpress

    阿里云+wordpress搭建个人博客网站[小白专用的图文教程]   [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源 ...