Activity程序Activity.java

package com.example.intentcaseproject;

import android.net.Uri;

import android.os.Bundle;

import android.provider.ContactsContract;

import android.app.Activity;

import android.content.ContentUris;

import android.content.Intent;

import android.database.Cursor;

import android.view.Menu;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.EditText;

import android.widget.Toast;

public class MainActivity extends Activity {

private Button mybut=null;

private EditText tel=null;

private EditText content=null;

private Button addbut=null;

private Button telbut=null;

private static final int PICK_CONTEACT_SUBACTIVITY=1;//自定义操作标记

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

super.setContentView(R.layout.activity_main);

this.mybut=(Button)super.findViewById(R.id.mybut);//取得组件

this.tel=(EditText)super.findViewById(R.id.tel);//取得组件

this.content=(EditText)super.findViewById(R.id.content);//取得组件

this.addbut=(Button)super.findViewById(R.id.addbut);//取得组件

this.telbut=(Button)super.findViewById(R.id.telbut);//取得组件

this.mybut.setOnClickListener(new OnClickListenerlmpl());//设置发送短信按钮事件

this.addbut.setOnClickListener(new ContactsOnClickListener());//设置查找联系按钮事件

this.telbut.setOnClickListener(new TelClickListener());// 设置拨打电话号码事件

}

private class TelClickListener implements OnClickListener{//拨号按钮

@Override

public void onClick(View v) {

String telStr=MainActivity.this.tel.getText().toString();//获取电话号码

Uri uri=Uri.parse("tel:"+telStr);   //拨打电话号码的URI格式

Intent it=new Intent();   //实例化Intent

it.setAction(Intent.ACTION_CALL);   //指定Action

it.setData(uri);   //设置数据

MainActivity.this.startActivity(it);//启动Acitivity

}

}

private class ContactsOnClickListener implements OnClickListener{//联系人查找按钮+

@Override

public void onClick(View arg0) {

Uri uri=Uri.parse("content://contacts/people");//连接URi

Intent it=new Intent(Intent.ACTION_PICK,uri);//指定Intent

MainActivity.this.startActivityForResult(it, PICK_CONTEACT_SUBACTIVITY);//调用Intent

}

}

@Override

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

switch(requestCode){

case PICK_CONTEACT_SUBACTIVITY://接受返回数据

Uri ret=data.getData();//单个数据的URI

String selection=ContactsContract.CommonDataKinds.Phone.CONTACT_ID+"=?";//查询条件

String[] selectionArgs={String.valueOf(ContentUris.parseId(ret))};//查询参数

Cursor result=super.managedQuery(

ContactsContract.CommonDataKinds.Phone.CONTENT_URI,

null, selection, selectionArgs, null);//查询该联系人的全部号码

for(result.moveToFirst();!result.isAfterLast();result.moveToNext()){//循环取出号码

MainActivity.this.tel.setText(//设置到文本框中

result.getString(

result.getColumnIndex(

ContactsContract.CommonDataKinds.Phone.NUMBER)));

}

break;

}

}

private class OnClickListenerlmpl implements OnClickListener{//发送短信按钮

@Override

public void onClick(View v) {

String telStr=MainActivity.this.tel.getText().toString();// 取出电话号码

String note=MainActivity.this.content.getText().toString();//取出短信内容

Uri uri=Uri.parse("smsto:"+telStr);  //指定路径

Intent it=new Intent();   //实例化Intent

it.setAction(Intent.ACTION_SENDTO);  //指定Action

it.putExtra("sms_body", note);

it.setType("vnd.android-dir/mms-sms");

it.setData(uri);   //设置数据

MainActivity.this.startActivity(it);  //启动Activity

}

}

@Override

public boolean onCreateOptionsMenu(Menu menu) {

// Inflate the menu; this adds items to the action bar if it is present.

getMenuInflater().inflate(R.menu.main, menu);

return true;

}

}

界面配置文件,采用线性布局内嵌表格布局activity_mian.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="wrap_content" >

<TableLayout

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent" >

<TableRow>

<TextView

android:layout_width="90px"

android:layout_height="wrap_content"

android:text="号码:"/>

<EditText

android:id="@+id/tel"

android:layout_width="260px"

android:layout_height="wrap_content"

android:numeric="integer"/>

<Button

android:id="@+id/addbut"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="+"/>

</TableRow>

<TableRow>

<TextView

android:layout_width="90px"

android:layout_height="wrap_content"

android:text="内容:"/>

<EditText

android:id="@+id/content"

android:layout_width="260px"

android:layout_height="wrap_content"

android:gravity="top"

android:lines="6"/>

</TableRow>

</TableLayout>

<LinearLayout

android:orientation="horizontal"

android:gravity="center"

android:layout_width="fill_parent"

android:layout_height="wrap_content" >

<Button

android:id="@+id/mybut"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="发送短信" />

<Button

android:id="@+id/telbut"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="拨打电话 "/>

</LinearLayout>

</LinearLayout>

权限设置AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

package="com.example.intentcaseproject"

android:versionCode="1"

android:versionName="1.0" >

<uses-sdk

android:minSdkVersion="10"

android:targetSdkVersion="10" />

<application

android:allowBackup="true"

android:icon="@drawable/ic_launcher"

android:label="@string/app_name"

android:theme="@style/AppTheme" >

<activity

android:name="com.example.intentcaseproject.MainActivity"

android:label="@string/app_name" >

<intent-filter>

<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />

</intent-filter>

</activity>

</application>

<uses-permission android:name="android.permission.CALL_PHONE"/>

<uses-permission android:name="android.permission.READ_CONTACTS"/>

</manifest>

版权声明:本文为博主原创文章,未经博主允许不得转载。

android使用Intent操作拨打号码发送短信的更多相关文章

  1. android 入门 002 (拨打电话,发送短信)

    一.拨打电话 1.首先做好界面,代码如下: layout =>activity_main.xml 中 <LinearLayout xmlns:android="http://sc ...

  2. Android-读取操作系统通话记录并/拨打电话/发送短信/复制号码到拨号盘

    apps目录的contacts应用(有读取通话记录功能),是访问provider目录的provider.contacts应用(有暴露通话记录),所以要阅读Android操作系统源码-->pack ...

  3. Arduino+sim800C家居安防火灾报警 拨打电话 发送短信例程程序

    家居安防报警器,参考程序. 火灾报警 涉及用sim800c发短信,拨打电话通知. 接线: Sim800c 3.3V -> Arduino 3.3V Sim800c GND -> Ardui ...

  4. iOS_拨打电话/发送短信

    GitHub address : https://github.com/mancongiOS/makeACallAndSendMessage.git 功能一: 拨打电话 1.可以有提示框.提示该电话号 ...

  5. 调用 url_launcher 模块打开外部浏 览器 打开外部应用 拨打电话 发送短信

    1.Flutter url_launcher 模块    Flutter url_launcher 模块可以让我们实现打开外部浏览器.打开外部应用.发送短信.拨打电话等功能.    https://p ...

  6. IOS中调用系统拨打电话发送短信

    一.调用打电话界面 [[UIApplication sharedApplication] openURL:[NSURL URLWithString:[NSString stringWithFormat ...

  7. Cocos2d-x3.3RC0通过JNI调用Android的Java层URI代码发送短信

    1.Jni不在赘述.翻看前面博客 2.直接上代码 1)Java层,直接加在AppActivity.java中 public class AppActivity extends Cocos2dxActi ...

  8. Android软件开发之发送短信与系统短信库解析

    今天我和同学们讨论一下Android平台下如何调用系统方法发送短信.接收短信.系统的短信库相关的问题.进入正题,我们先使用Eclipse工具模拟给自己的模拟器发送一条短信.在Eclipse下打开DDM ...

  9. phoneGap的Android下编写phonegap 发送短信插件

    一.前端代码的编写 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> < ...

随机推荐

  1. poj 3501 Escape from Enemy Territory 二分+bfs

    水题,不解释. #include<stdio.h> #include<math.h> #include<cstring> #include<algorithm ...

  2. SQL Select count(*)和Count(1)的区别和执行方式及SQL性能优化

    SQL性能优化:http://www.cnblogs.com/CareySon/category/360333.html Select count(*)和Count(1)的区别和执行方式 在SQL S ...

  3. cocos2d-x 仿真树叶飘落效果的实现

    转自:http://blog.csdn.net/ufolr/article/details/7624851 最近项目中需要一个落叶的效果,本来想用粒子特效来实现,但是几经调试,虽然调出了落叶的效果,但 ...

  4. Android 4.2原生支持从右到左的文字排列格式

    Android 4.1(Jelly Bean)  在TextView和EditText 元素里对“双向文字顺序”提供了有限的功能支持,允许应用程序在编辑和显示字符的时候,能够同时支持从左到右(LTR) ...

  5. Java中反射的三种常用方式

    Java中反射的三种常用方式 package com.xiaohao.test; public class Test{ public static void main(String[] args) t ...

  6. LCD_ILI9320横竖屏方向的问题。

    发现仅仅设置R03H是不能设置方向的,还需要设置R32H,R33H的坐标位置. 比如我现在是 R03H=0x1000H,R20H=239-x,R21H=319-y:竖直正向 R03H=0x1030H, ...

  7. Android PhoneGap源码分析——白名单

    对于单独的Web app应用来说,加载进来的url一般不能保证它的安全性.那么如何来处理url安全性的问题呢. 让我们来看看PhoneGap是如何做的. PhoneGap采用了白名单的形式,认为在白名 ...

  8. MapReduce原理讲解

    简介 本文主要介绍MapReduce V2的基本原理, 也是笔者在学习MR的学习笔记整理. 本文首先大概介绍下MRV2的客户端跟服务器交互的两个协议, 然后着重介绍MRV2的核心模块MRAppMast ...

  9. SQL Server 2012 Express LocalDB

    微软最新推出的 SQL Server 2012 Express LocalDB 是一种 SQL Server Express 的运行模式,特别适合用在开发环境使用,也内置在 Visual Studio ...

  10. ajax生成html双引号问题

    //动态创建列表 function createLists(result){ var len=result.length,i; for(i=0;i<len;i++){ $myLi = $(&qu ...