1.短信编辑器的代码:

packagecn.csdn.hr.activity;

//倒入相应的包,在此不多说了

importjava.util.List;

importandroid.app.Activity;

importandroid.app.PendingIntent;

importandroid.content.Intent;

importandroid.os.Bundle;

importandroid.telephony.SmsManager;

importandroid.view.View;

importandroid.widget.Button;

importandroid.widget.EditText;

importandroid.widget.Toast;

publicclass SmsActivity extends Activity {

//声明一些要用到的变量,并将其私有化

private Button sendBtn;

private EditText etPhone;

private EditText etSms;

@Override

public void onCreate(BundlesavedInstanceState) {

super.onCreate(savedInstanceState);

// 设置显示的视图

setContentView(R.layout.main);

// 获取对应的组件对象

sendBtn = (Button)findViewById(R.id.sendBtn);

etPhone = (EditText) findViewById(R.id.etphone);

etSms = (EditText)findViewById(R.id.etsms);

// 注册按钮的点击事件

sendBtn.setOnClickListener(newView.OnClickListener() {

@Override

public void onClick(View v) {

// 获取电话号码 和短信的内容

String phone =etPhone.getText().toString();

String content =etSms.getText().toString();

// 短信的管理器对象

SmsManager smsManager =SmsManager.getDefault();

// 发送短信

PendingIntent pendingIntent =PendingIntent.getBroadcast(

SmsActivity.this, 0, newIntent(), 0);

// 拆分成多个短信 content>153字母大于 67汉字 才能够拆分

if(content.length() > 70) {

List<String>contents = smsManager.divideMessage(content);

for(String str : contents) {

smsManager.sendTextMessage(phone, null,str,

pendingIntent, null);

}

}else {

// 利用管理器的方法 发送短信smsManager.sendTextMessage(phone,null, content,

pendingIntent, null);

}

//最后二个参数为短信已发送的广播意图,最后一个参数为短信对方已收到短信的广播意图

Toast.makeText(SmsActivity.this,"短信发送成功", Toast.LENGTH_LONG).show();

// 意图 要干什么事情 必须有干事情的权限 在项目清单文件(AndroidManifest.xml)中添加

}

});

}

}

2.吐司设置

//Toast通知可以改变通知位置.

toast.setGravity(Gravity.TOP|Gravity.LEFT,0, 0);

//自定义吐司

Toasttoast = new Toast(getApplicationContext());

toast.setGravity(Gravity.CENTER_VERTICAL,0, 0);

toast.setDuration(Toast.LENGTH_LONG);

//布局文件layout.xml

toast.setView(layout);

toast.show();

3.Uri简介

Uri代表了要操作的数据,Uri主要包含了两部分信息:<1>需要操作的ContentProvider ,<2>对ContentProvider中的什么数据进行操作,一个Uri由以下几部分组成:

ContentProvider(内容提供者)的scheme已经由Android所规定, scheme为:content://

主机名(或叫Authority)用于唯一标识这个ContentProvider,外部调用者可以根据这个标识来找到它。

路径(path)可以用来表示我们要操作的数据,路径的构建应根据业务而定,如下:

要操作person表中id为10的记录,可以构建这样的路径:/person/10

要操作person表中id为10的记录的name字段, person/10/name

要操作person表中的所有记录,可以构建这样的路径:/person

要操作xxx表中的记录,可以构建这样的路径:/xxx

当然要操作的数据不一定来自数据库,也可以是文件、xml或网络等他存储方式,如下:

要操作xml文件中person节点下的name节点,可以构建这样的路径:/person/name

如果要把一个字符串转换成Uri,可以使用Uri类中的parse()方法,如下:

Uriuri = Uri.parse("content://cn.itcast.provider.personprovider/person")

4. UriMatcher类使用介绍

因为Uri代表了要操作的数据,所以我们经常需要解析Uri,并从Uri中获取数据。Android系统提供了两个用于操作Uri的工具类,分别为UriMatcher 和ContentUris 。掌握它们的使用,会便于我们的开发工作。

UriMatcher类用于匹配Uri,它的用法如下:

首先第一步把你需要匹配Uri路径全部给注册上,如下:

//常量UriMatcher.NO_MATCH表示不匹配任何路径的返回码

UriMatcher sMatcher = newUriMatcher(UriMatcher.NO_MATCH);

//如果match()方法匹配content://cn.itcast.provider.personprovider/person路径,返回匹配码为1

sMatcher.addURI(“cn.itcast.provider.personprovider”,“person”, 1);//添加需要匹配uri,如果匹配就会返回匹配码

//如果match()方法匹配content://cn.itcast.provider.personprovider/person/230路径,返回匹配码为2

sMatcher.addURI(“cn.itcast.provider.personprovider”, “person/#”, 2);//#号为通配符

switch(sMatcher.match(Uri.parse("content://cn.itcast.provider.personprovider/person/10"))){

case 1

break;

case 2

break;

default://不匹配

break;

}

注册完需要匹配的Uri后,就可以使用sMatcher.match(uri)方法对输入的Uri进行匹配,如果匹配就返回匹配码,匹配码是调用addURI()方法传入的第三个参数,假设匹配content://cn.itcast.provider.personprovider/person路径,返回的匹配码为1

更多相关文章

  1. Android在API推荐的方式来实现SQLite数据库的增长、删除、变化、
  2. Android下如何获得通话记录和短信记录
  3. android 分享到QQ空间的所有操作
  4. android最简单的发送文本短信的demo
  5. android 拨打电话与发送短信
  6. Android接收信息操作
  7. Android中短信拦截的实现
  8. Android SDCard 操作
  9. Android 拦截 接收 短信

随机推荐

  1. PHP最新的插件化后台管理系统真的蛮好用
  2. 如何绘制手部?漫画人物手部简单画法
  3. Android屏蔽HOME键
  4. Android(安卓)Button,TextView的显示大小
  5. RxJava操作符
  6. Android中数据的保存和提取
  7. 安卓自定义流式布局
  8. android下进行opencv开发的配置
  9. Ubuntu Lucid(10.04)上安装Google Androi
  10. EXOPlayer居中播放,类似ImageView的CENTER