怎么调用系统通讯录并向被选中联系人发送短信

每做一个项目都会有收获,前提是要在这个项目上付出努力的!

好吧,如今讲一下:怎么通过调用系统通讯录,当你点击联系人姓名时,跳转到向其发送短信的页面<收件人是被点中的联系人,短信已自己主动编辑>。

看看图片效果:

以下看一下具体代码:

  Uri result = data.getData();
  String phoneName = getPhoneContacts(result);
  Log.d("phone", "---------->phoneName=="+contactName);
  String smsContent="发给你一个时尚园APP的注冊邀请码,他们家的东西非常有品。" +
	""+"\n"+strInviteCode+"(时尚园 APP下载地址http://t.so)";
  sendSMS(phoneName,smsContent);
/**
     * 获取联系人手机号码
     * @param contactId
     * @return
     */
@SuppressWarnings("deprecation")
	private String getPhoneContacts(Uri contactId) {
		Cursor cursor = null;
		String phoneName = "";//联系人姓名
		String phoneNum = "";//联系人电话号码
		String phoneID = "";//联系人ID
		try {
//			Uri uri = People.CONTENT_URI;
			cursor=getContentResolver().query(contactId, null, null, null, null);
			if (cursor.moveToNext()) {
				 phoneName = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
				 phoneID=cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));

				Log.d("phone", "phoneName&&phoneNumber=="+phoneName+"-----"+phoneID);
				Cursor c=getContentResolver().query(Phone.CONTENT_URI, null, Phone.CONTACT_ID+"="+phoneID, null, null);
				while(c.moveToNext()){
					phoneNum=c.getString(c.getColumnIndex("data1"));
					Log.d("phone", "phoneNumber=="+phoneNum);
				}
			} else {
				 Toast.makeText(this, "找不到该联系人",Toast.LENGTH_LONG).show();
			}
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			if (cursor != null) {
				cursor.close();
			}
		}
		return phoneNum;
	}
/**
	 * 发送短信
	 *
	 * @param smsBody
	 */
	private void sendSMS(String phoneNum, String smsBody) {
		Log.d("phone", "sendSMS(String phoneNum, String smsBody)=="+phoneNum);
		Uri smsToUri = Uri.parse("smsto:"+phoneNum);
		Intent intent = new Intent(Intent.ACTION_SENDTO, smsToUri);
		intent.putExtra("sms_body", smsBody);
		startActivity(intent);

//		Intent mmsintent = new Intent(Intent.ACTION_SENDTO, Uri.fromParts("smsto", phoneNum, null));
//		mmsintent.putExtra("sms_body", smsBody);
//		startActivity(mmsintent);

		 /* 建立SmsManager对象 */
//        SmsManager smsManager = SmsManager.getDefault();
//        smsManager.sendTextMessage(phoneNum, null, smsBody, null, null);
	}

怎么调用系统通讯录并向被选中联系人发送短信,布布扣,bubuko.com

时间: 2024-08-05 23:19:04

怎么调用系统通讯录并向被选中联系人发送短信的相关文章

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

今天我和同学们讨论一下Android平台下如何调用系统方法发送短信.接收短信.系统的短信库相关的问题.进入正题,我们先使用Eclipse工具模拟给自己的模拟器发送一条短信.在Eclipse下打开DDMS Incoming number: 这里须要填写的是发件人的手机号码,这里只能输入数字否则会无法发送. Message: 这里为发送的内容send: 上面两项都填写完毕点击发送键可以给模拟器发送短信. <ignore_js_op> 点击发送后,模拟器中就可以看到自己收到了一条消息 发件人的号码为

iOS --调用系统通讯录

// 调用系统通讯录需要遵循两个代理ABPeoplePickerNavigationControllerDelegate,UINavigationControllerDelegate 相关类为ABPeoplePickerNavigationController // 系统通讯录自带导航栏,所有要model出来 // 初始化 ABPeoplePickerNavigationController *peoplePicker = [[ABPeoplePickerNavigationController

iOS开发--调用系统通讯录界面

今天写代码遇到了要调用系统通讯录,看了一些博客发现写的都是获取通讯录的内容,而不是调用系统的界面. 分享一下自己写的代码 第一步:引入 #import <AddressBook/AddressBook.h> #import <AddressBookUI/AddressBookUI.h> 第二步:添加点击事件 创建一个通讯录界面 并以present的方式跳转 #pragma mark -- IBAction - (IBAction)buttonClicked:(id)sender {

android中调用系统的发送短信、发送邮件、打电话功能

1 调用发送短信功能: Uri smsToUri = Uri.parse("smsto:"); Intent sendIntent = new Intent(Intent.ACTION_VIEW, smsToUri); sendIntent.putExtra("address", "123456"); //电话号码,这行去掉的话,默认就没有电话 sendIntent.putExtra("sms_body","短信内容

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

一.调用打电话界面 [[UIApplication sharedApplication] openURL:[NSURL URLWithString:[NSString stringWithFormat:@"tel://%@",_phoneNumber]]]; 二.发送短消息界面 调用系统的发送短信的界面,需要引入以下头文件: #import <MessageUI/MessageUI.h> 系统短信界面的调用很简单,只需下面几句代码: ? 1 2 3 4 5         

Java调用SMSLib发送短信详解

项目中需要用到发送短信功能,之前没做过这方面,找人咨询了一下,也网上查了查,发现并不是很复杂.目前项目已经完成了,做个记录以备后用.程序中发送短信主要有4种方法: 1.向当地的运营商申请网关,不需要额外的设备,利用对方提供的 API调用程序发送短信,适用于大型的通信公司.稳定,速度快,适合短信量特别大的需求,需要连接到运营商的网络中,不适合内网项目. 2.短信猫发送短信,借助像 GSM MODEM之类的设备(支持AT指令的手机也行),通过数据线连接电脑来发送短信,这种方法比较适用于小公司及个人.

zabbix调用sendsms.py脚本,无法发送短信

zabbix调用python发送短信的操作方法和配置邮件报警类似.过程参考zabbix配置部分. 下面是python的脚本: [[email protected] alertscripts]# cat sendsms.py #!/usr/bin/python import  sys,requests,time MobNum=[sys.argv[1],] of=open("smslog.log",'a') of.writelines(MobNum[0]) Subject=sys.argv

android 中调用接口发送短信

android中可以通过两种方式发送短信 第一:调用系统短信接口直接发送短信:主要代码如下: Java代码   //直接调用短信接口发短信 SmsManager smsManager = SmsManager.getDefault(); List<String> divideContents = smsManager.divideMessage(content); for (String text : divideContents) { smsManager.sendTextMessage(&

Android 调用系统通讯录

这个过程有三步:1)许可向你的应用程序的manifest中添加读取通讯录数据的许可  <uses-permission android:name="android.permission.READ_CONTACTS" />    <uses-permission android:name="android.permission.WRITE_CONTACTS" /> 2)调用Contact Picker在你的activity中,创建一个Inten