Content://sms
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的更多相关文章
- android Content Provider介绍
ContentProvider(内容提供者)是Android中的四大组件之一.主要用于对外共享数据,也就是通过ContentProvider把应用中的数据共享给其他应用访问,其他应用可以通过Conte ...
- Android网页中tel,sms,mailTo,Intent,Market协议用法总结
tel:协议---拨打电话 <a href="tel:">调出拨号界面</a> <a href="tel:10086">调 ...
- 内容提供者Content Provider
*读取联系人 StringBuilder sb = new StringBuilder(); // 1:得到中间人. ContentResolver resolver = getContentReso ...
- android应用程序监听SMS Intent广播
当设备接收到一条新的SMS消息时,就会广播一个包含了android.provider.Telephony.SMS_RECEIVED动作的Intent. 对于应用程序监听SMS Intent广播,首先需 ...
- android 访问SMS短信收件箱
访问 SMS收件箱是另一个常见的需求.首先,需要将读取 SMS 的权限 <uses-permission android:name="android.permission.READ ...
- 内容提供者(Content Provider)——跨程序共享数据
内容提供者 Content Provider 应用的数据库是不允许其他应用访问的 内容提供者的作用就是让别的应用访问到你的数据库 自定义内容提供者,继承ContentProvider类,重写增删改查方 ...
- 利用内容提供者插入sms(装B程序)
1.sms的权限配置 <uses-permission android:name="android.permission.READ_SMS"/> <uses-pe ...
- Android系统应用Mms之Sms短信发送流程(Mms应用部分)二
1. 新建一条短信, 在发送短信之前, 首先创建的是一个会话Conversation, 以后所有与该接收人(一个或多个接收人)的消息交互, 都在该会话Conversation中. ComposeMes ...
- 建立一个类似于天眼的Android应用程序:第4部分 - 持久收集联系人,通话记录和短信(SMS)
建立一个类似于天眼的Android应用程序:第4部分 - 持久收集联系人,通话记录和短信(SMS) 电话黑客android恶意软件编程黑客入侵linux 随着我们继续我们的系列,AMUNET应用程序变 ...
随机推荐
- linux sort,uniq,cut,wc命令详解 (转)
sort sort 命令对 File 参数指定的文件中的行排序,并将结果写到标准输出.如果 File 参数指定多个文件,那么 sort 命令将这些文件连接起来,并当作一个文件进行排序. sort语法 ...
- C语言static 具体分析
google在最后三页C语言static内容,可找到的资料非常少.无论是长篇大论不知所云的话,在关键位置或跳过,习的人来说參考性不是非常大.所以.我这篇博文博採众家之长,把互联网上的资料整合归类,并亲 ...
- 由于空间,注定的结果——第五届山东省ACM编程比赛总结
应该是,这是一个很失败的结果.目前省赛玩具.作为志愿者说,,铁匠是一个很丢人的事. 作为队长.全然没有想到会是这种一次旅程.尽管由于去baidu的实习和各种offer的申请,对acm抱着能水就水绝不深 ...
- Excel阅读器NPOI
什么是NPOI? NPOI 它是 POI 项目的 .NET 版本号. POI是一个开源的Java读写Excel.WORD等微软OLE2组件文档的项目. 使用 NPOI 你就能够在没有安装 Office ...
- UNIX环境高级编程——Linux进程地址空间和虚拟内存
一.虚拟内存 分段机制:即分成代码段,数据段,堆栈段.每个内存段都与一个特权级相关联,即0~3,0具有最高特权级(内核),3则是最低特权级(用户),每当程序试图访问(权限又分为可读.可写和可执行)一个 ...
- Node.js : 我只需要一个店小二
刚刚开始接触Node.js时, google了很多文章,但发现大部分都是泛泛的介绍安装,配置,以及介绍几个小例子 有一种雾里观花的感觉,所以非常困惑,不知道Node.js到底解决了什么问题,它的优势到 ...
- 初识google多语言通信框架gRPC系列(二)编译gRPC
目录 一.概述 二.编译gRPC 三.C#中使用gRPC 四.C++中使用gRPC 无论通过哪种语言调用gRPC,都必须要编译gRPC,因为生成proto访问类时,除了产生标准的数据定义类之外,还需要 ...
- Keepalived 配置和使用
keepalived主要用作RealServer的健康状态检查以及LoadBalance主机和BackUP主机之间failover的实现.keepalived主要目的在于,其自身启动一个服务,能够实现 ...
- Coco2dx-3.0中怎样调用LUA
一个用3.0的工具导出类到lua,自己主动生成代码的方法. 曾经要导出c++类到lua.就得手动维护pkg文件,那简直就是噩梦.3.0以后就会感觉生活非常轻松了. 以下我就在说下详细做法. 1.安装必 ...
- iOS 删除黑色边框线导航栏&删除搜索框的阴影边界线和中黑色文本输入框 - 解
删除黑色边框线导航栏 in viewDidload: [self.navigationController.navigationBar setBackgroundImage:[[UIImage all ...