原文找不到了。看了别人的一些。自己加了一点。做一个代码备份。自己看就可以了。先上一下图吧。看看一效果。

通过上边选择联系人。把选择过的联系显示到EditView 中。而发送短信时。可以获取联系人的电话号码。

发短信的的类SendmessageActivity.java

package com.hkrt.action;import java.util.List;import android.app.Activity;
import android.app.PendingIntent;
import android.content.ContentResolver;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.telephony.SmsManager;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;public class SendmessageActivity extends Activity {private EditText editNum;private EditText editContext;private String phoneNum;private int LIANXR=10;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);editNum =(EditText)this.findViewById(R.id.input_num);editContext =(EditText)this.findViewById(R.id.input_content);Button button =(Button)this.findViewById(R.id.button);button.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {
//              String phoneNum = editNum.getText().toString();String context = editContext.getText().toString();SmsManager sms = SmsManager.getDefault();//发送信息的管理器PendingIntent sentIntent = PendingIntent.getBroadcast(SendmessageActivity.this, 0, new Intent(), 0);//PendingIntent也是一个意图//把短信内容进行每70个字节分割List<String> conts= sms.divideMessage(context);for(String str:conts){sms.sendTextMessage(phoneNum, null, str, sentIntent, null);}//信息发送完后提示Toast.makeText(SendmessageActivity.this, "短信发送完成", Toast.LENGTH_LONG).show();}});Button btnContact  = (Button)this.findViewById(R.id.btnContact);btnContact.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Intent intent = new Intent(Intent.ACTION_PICK,  ContactsContract.Contacts.CONTENT_URI);startActivityForResult(intent, LIANXR);}});}@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);ContentResolver resol = getContentResolver();if (resultCode == Activity.RESULT_OK) {String name;Uri contactData = data.getData();Cursor c = managedQuery(contactData, null, null, null, null);c.moveToFirst();name = c.getString(c.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));editNum.setText(name);// 取得联系人id,每个条目都有一个唯一的id(主键)String contactId = c.getString(c.getColumnIndex(ContactsContract.Contacts._ID));// 取得联系人的号码Cursor phone = resol.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = " + contactId, null, null);while (phone.moveToNext()) {phoneNum = phone.getString(phone.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));System.out.println("phonum:"+phoneNum);}}}}

main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical"android:layout_width="fill_parent"android:layout_height="fill_parent">
<TextView  android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello"/><EditText android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/input_num"/><Button android:layout_width="wrap_content"android:layout_height="wrap_content" android:text="contact"android:id="@+id/btnContact"/><TextView  android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/input_context"/><EditText android:layout_height="wrap_content"android:layout_width="fill_parent"android:id="@+id/input_content" android:minLines="3"android:gravity="top"/><Button android:text="@string/button"android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/button"/></LinearLayout>

调用联系人ContactPick.java

package com.hkrt.action;import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
import android.widget.AdapterView.OnItemClickListener;public class ContactPick extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);Intent orgIntent = getIntent();Uri queryUri = orgIntent.getData();final Cursor c = managedQuery(queryUri,null,null,null,null);String[] fromColumns = new String[] { ContactsContract.Contacts.DISPLAY_NAME };int[] toLayoutIDs = new int[] { R.id.itemTextView };SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,R.layout.listitemlayout, c, fromColumns, toLayoutIDs);ListView lv = (ListView) findViewById(R.id.contactListView);lv.setAdapter(adapter);lv.setOnItemClickListener(new OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> parent, View view, int pos,long id) {c.moveToPosition(pos);int rowId = c.getInt(c.getColumnIndexOrThrow(ContactsContract.Contacts._ID));Uri outURI = Uri.parse(ContactsContract.Contacts.CONTENT_URI .toString()+ rowId);Intent outData = new Intent();outData.setData(outURI);setResult(Activity.RESULT_OK, outData);finish();}});}}

对应的两个xml .contact.xml 和listitemlayout.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical" android:layout_width="fill_parent"android:layout_height="fill_parent"><ListView android:id="@+id/contactListView"android:layout_width="fill_parent"android:layout_height="wrap_content" />
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical" android:layout_width="fill_parent"android:layout_height="fill_parent"><TextView android:id="@+id/itemTextView" android:layout_width="wrap_content"android:layout_height="wrap_content" android:padding="10px"android:textSize="16px" android:textColor="#FFF" /></LinearLayout>

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.hkrt.action"android:versionCode="1"android:versionName="1.0"><uses-sdk android:minSdkVersion="8" /><application android:icon="@drawable/send" android:label="@string/app_name"><uses-library android:name="android.test.runner" /><activity android:name=".SendmessageActivity"  android:label="@string/app_name"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity><activity android:name=".ContactPick" android:label="@string/app_name"><action android:name="android.intent.action.PICK" /><category android:name="android.intent.category.DEFAULT" /></activity></application><instrumentation android:name="android.test.InstrumentationTestRunner"android:targetPackage="com.hkrt.action" android:label="Tests for My App" /><uses-permission android:name="android.permission.SEND_SMS"/><uses-permission android:name="android.permission.READ_CONTACTS" /><uses-permission android:name="android.permission.WRITE_CONTACTS" /></manifest>

demo 目录图:

转载于:https://www.cnblogs.com/java20130726/archive/2012/01/09/3218322.html

android 发短信 调到联系人相关推荐

  1. android+发短信示例,Android编程实现定时发短信功能示例

    本文实例讲述了Android编程实现定时发短信功能.分享给大家供大家参考,具体如下: 第一,要实现发短信的功能,必须要用到android系统中发短信的权限,即在AndoridManifest.xml中 ...

  2. android发短信小例子TinySMS

    TinySMS.java ------------------------------------------------------------------------------ package ...

  3. android 发短信意图,安卓实现发送短信小程序代码示例

    这篇文章主要介绍了Android开发中实现发送短信的小程序示例,文中还附带了一个监听广播接收者的升级版短信发送例子,需要的朋友可以参考下 上图为代码结构图. 现在我们看下具体的代码. Send.jav ...

  4. [实战] Android 发短信 - SMS

    短信有两种方式:一种是获得授权然后直接发送,pendingIntent监控结果,二是交给系统调用默认软件预填. 一. 短信-获得授权,直接发送 1. AndroidManifest.xml 注册授权 ...

  5. android 发短信带链接,Android 点击Url(短信链接)打开App

    前言 先说一下要实现的效果吧: 在产品运营过程中时常会有一些消息或者活动通知到用户,且需要唤醒沉睡的用户 综合考量之下决定选用通过短信发送一条活动链接,通过点击这条链接可以直接跳转到我们的APP 用户 ...

  6. android 发短信意图,android代码实现打电话和发送短信功能

    android代码实现打电话和发送短信功能 发布时间:2020-05-27 11:57:17 来源:亿速云 阅读:172 作者:鸽子 1.XML布局 xmlns:app="http://sc ...

  7. android 发短信 oppo,oppo手机怎么自动回复短信?oppo手机自动回复信息设置教程

    就算不是手机没带或者没有信号,但当电话来的时候你在开一个重要的会议,又或者正在电影院陪女朋友看电影,这个时候你应该并不能轻易的接电话,那么这个时候OPPO R11手机的"以信息回复" ...

  8. 实验三Android发短信,南昌大学+android+实验三+实验报告.docx

    南昌大学+android+实验三+实验报告.docx 还剩 6页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,喜欢就下载吧,价低环保! 内容要点: 个 新 的 实 例 , 并 将 该 Ac ...

  9. android发短信乱码,android 音乐信息乱码处理

    关于android 音乐乱码的问题,估计很多人都为此头疼..可能会为你带来些帮助! public static MusicBean fileToMusic(File file) { if (file. ...

最新文章

  1. 伟大的密码胜于利剑——RSA2012成都站掠影
  2. Express中app.use中间件的用法-匹配所有的请求方式
  3. 神经信息学整理(1)-神经细胞,MP模型
  4. 如何把winPE装到硬盘隐藏起来
  5. centos6.4 安装 mysql_CentOS6.4 安装MySQL
  6. 【转】xargs命令详解,xargs与管道的区别
  7. python3手机脚本教学_python+adb命令实现自动刷视频脚本案例
  8. ABB机器人之LOADDATA
  9. spark广播变量 和 累加器
  10. Tomcat10 开机启动 Linux环境
  11. mysql linux改密码忘记了怎么办_linux上mysql改密码忘了怎么办?
  12. 上海计算机一级考试2017,2017年上海计算机一级考试试题
  13. 全局变量 局部变量 静态变量
  14. GeoDa 空间自相关操作步骤
  15. 计算机基础中通信概预算,通信工程概预算编制系统的设计与实现
  16. linux命令mvn,Linux下使用mvn命令(maven)
  17. NOI2021颓废记
  18. 微信支付商户号如何开通0.2%提现费率/手续费?
  19. 比亚迪唐DMI购车经验分享
  20. matplotlib之pyplot模块——绘制对数线图(loglog()、semilogx()、semilogy())

热门文章

  1. asp.net控件开发基础(2)
  2. 2.12 priority_queue
  3. C# 线程间不能调用剪切板的问题
  4. a标签实现不跳转点击
  5. deep learning入门学习
  6. Linux环境下安装部署AWStats日志分析系统实例
  7. 清除Linux终端命令的历史记录
  8. Linux下的分区工具
  9. 数据分析师 需求分析师_是什么让分析师出色?
  10. python3openpyxl无法打开文件_Python3 处理excel文件(openpyxl库)