`
15050855750
  • 浏览: 8481 次
  • 性别: Icon_minigender_2
社区版块
存档分类
最新评论

手机通讯录

 
阅读更多
仅导出手机联系人
package com.example.test_tx;
import android.os.Bundle;
import android.provider.ContactsContract.CommonDataKinds.Phone;
import android.app.Activity;
import android.content.ContentResolver;
import android.database.Cursor;
import android.text.TextUtils;
import android.view.Menu;
import android.widget.TextView;

public class MainActivity extends Activity {

	private String getQueryData(){  
	     ContentResolver resolver=this.getContentResolver(); 
		 String[] columns = new String[] {Phone.DISPLAY_NAME,Phone.NUMBER};  
		        
		Cursor cursor = resolver.query(Phone.CONTENT_URI, columns, null,null,"sort_key");  
		StringBuilder sb=new StringBuilder();     
		      
		while (cursor.moveToNext()) {  
			         String name=cursor.getString(cursor.getColumnIndex(Phone.DISPLAY_NAME));    
		             String number=cursor.getString(cursor.getColumnIndex(Phone.NUMBER));  
		  
		             if(TextUtils.isEmpty(number)){ 
		                 continue;  
		             }  
		             sb.append(name).append("\n"). append("联系方式").append(number).append("\n").append("---------------------------------------------").append("\n");
		     }  
	              cursor.close();    
		          return sb.toString();      
		 }
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		TextView tv=(TextView)findViewById(R.id.textView1);
		tv.setText(getQueryData());
		


	}

	@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;
	}

}


权限
<uses-permission android:name="android.permission.READ_CONTACTS"/>
导出手机联系人,并且实现拨号和发信息的功能
package com.example.lxrddh;

import android.net.Uri;
import android.os.Bundle;
import android.provider.ContactsContract.CommonDataKinds.Phone;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.app.Dialog;
import android.content.ContentResolver;
import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.database.CursorWrapper;
import android.telephony.PhoneNumberUtils;
import android.text.TextUtils;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
import android.widget.Toast;

public class MainActivity extends Activity {
	ListView listView;
	String number;
	


	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		final ListView listView=(ListView)findViewById(R.id.listView);
		Cursor cur=getContentResolver().query(Phone.CONTENT_URI,null, null, null, "sort_key");
		startManagingCursor(cur);
		final ListAdapter adapter=new SimpleCursorAdapter(this,
				android.R.layout.simple_list_item_2,cur,new String[]{
				Phone.DISPLAY_NAME,Phone.NUMBER},
				new int[]{android.R.id.text1,android.R.id.text2});
		listView.setAdapter(adapter);

		
		listView.setOnItemClickListener(new OnItemClickListener() {

			@Override
			public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
					long arg3) {
				// TODO Auto-generated method stub
				
				
				CursorWrapper wrapper=(CursorWrapper)listView.getItemAtPosition(arg2);
				int columnIndex=wrapper.getColumnIndex(Phone.NUMBER);
				if(!wrapper.isNull(columnIndex)){
					final String number=wrapper.getString(columnIndex);
					if(PhoneNumberUtils.isGlobalPhoneNumber(number)){
				
				
				Builder builder=new AlertDialog.Builder(MainActivity.this);
				
				builder.setTitle("请选择");
			    builder.setPositiveButton("通话",new  AlertDialog.OnClickListener() {

						@Override
						public void onClick(DialogInterface arg0, int arg1) {
							// TODO Auto-generated method stub
							startActivity( new Intent(Intent.ACTION_DIAL,Uri.parse("tel://"+ number)));
						}
					});
			    builder.setNegativeButton("短信",new  AlertDialog.OnClickListener() {
							@Override
							public void onClick(DialogInterface dialog, int which) {
								startActivity	(new Intent(Intent.ACTION_SENDTO,Uri.parse("smsto:"+ number)));
							}
						});
				builder.create().show();
	
					}
				}

			}
		});
		
	}
	 private void openToast(String str){
	     Toast.makeText(this,str,Toast.LENGTH_SHORT).show();
	 }

	@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;
	}

}


权限
<uses-permission android:name="android.permission.READ_CONTACTS"/>
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.SEND_SMS"/>
分享到:
评论

相关推荐

    C语言手机通讯录系统

    ### C语言实现的手机通讯录管理系统 在计算机科学与编程领域,使用C语言构建应用程序是基础而关键的技能之一。本文将深入解析一个基于C语言的手机通讯录管理系统的实现细节,该系统提供了添加、查询、修改和删除...

    基于android手机通讯录的设计与实现的毕业论文.doc

    基于 Android 手机通讯录的设计与实现 摘要:本系统是基于 Android 手机操作系统,利用 Java 语言,Eclipse 为开发工具,设计了一款手机通讯录。本系统包括存储、删除、修改、打电话、发信息、发邮件、备份 SD 卡等...

    Android开发手机通讯录

    在Android平台上,开发一款手机通讯录应用涉及到许多关键技术和组件,包括用户界面设计、数据存储、权限管理以及安全措施。接下来,我们将详细探讨这些知识点。 首先,**用户界面设计**是任何应用程序的核心部分。...

    获取Android手机通讯录

    在Android平台上,获取手机通讯录是一项常见的功能,它涉及到用户数据的访问和处理。这篇详细的说明将引导你了解如何在Android设备上实现这一操作,包括客户端和服务端的交互。 首先,我们要理解Android客户端如何...

    java编写的简单手机通讯录

    《基于Java实现的简单手机通讯录系统》 在信息技术飞速发展的今天,手机通讯录作为日常生活中的必备工具,其功能的实现与优化始终是开发者关注的焦点。本项目旨在通过Java编程语言,实现一个简单的手机通讯录系统,...

    C++写的一个手机通讯录

    在本项目中,标题"用C++写的一个手机通讯录"揭示了主要的编程语言——C++,以及项目的核心功能,即实现一个类似手机通讯录的管理程序。这个通讯录程序可能包含了添加联系人、搜索联系人、编辑联系人信息以及删除联系...

    android开发的手机通讯录(毕业设计,课程设计)

    【Android开发的手机通讯录详解】 在Android平台上开发一个手机通讯录系统,是许多开发者学习Android编程时的经典案例,也是毕业设计或课程设计中的常见课题。这个项目涉及到多个Android开发的关键知识点,包括用户...

    手机通讯录实现目标

    根据提供的文件信息,我们可以推断出该文档主要讨论的是如何在Android平台上实现手机通讯录的目标,包括将通讯录导出到Excel文件以及设置个人名片等内容。下面将详细展开这些知识点。 ### 手机通讯录实现目标 ####...

    Android获取手机通讯录、sim卡联系人及调用拨号界面方法

    在Android平台上,获取手机通讯录和SIM卡联系人,以及调用拨号界面是常见的功能需求,这通常涉及到用户信息的读取和系统的交互。以下将详细解释如何实现这些功能。 首先,要获取手机通讯录的联系人信息,我们需要...

    Android学习之手机通讯录

    本项目“Android学习之手机通讯录”聚焦于使用ContentProvider操作手机内置的通讯录,包括查询、添加和删除联系人。尽管删除功能存在不足,但这个练习仍能帮助我们深入理解ContentProvider的工作原理。 首先,我们...

    手机通讯录产品横评及畅想

    本文将聚焦于三款主流的手机通讯录应用:QQ通讯录、友录通讯录和火种通讯录,进行一次详尽的横评分析,并对未来的发展趋势进行一番畅想。 首先,QQ通讯录是腾讯公司推出的一款通讯录管理工具,它深度整合了QQ账号...

    C语言课程设计 手机通讯录 管理系统

    《C语言实现手机通讯录管理系统》 在C语言的学习过程中,进行课程设计是提升编程技能的重要环节。手机通讯录管理系统就是一个适合C语言初学者实践的项目。它涉及到基本的数据结构、文件操作以及用户交互,有助于...

    C语言做的手机通讯录

    【标题】:“C语言做的手机通讯录” C语言是一种基础且强大的编程语言,常用于系统开发、嵌入式系统以及教育领域。在这个项目中,“C语言做的手机通讯录”是利用C语言实现的一个简单应用程序,它模拟了手机上的联系...

    android手机通讯录的毕业论文

    在Android操作系统中,手机通讯录是一个至关重要的功能,它不仅为用户提供联系人存储、查找和管理的便捷方式,还与其他应用程序和服务紧密集成。这篇“android手机通讯录的毕业论文”可能涉及以下几个关键知识点: ...

    安卓Android源码——获取手机通讯录的实战应用(含SIM卡中的联系人).rar

    本实战应用主要涵盖了如何通过Android源码获取手机通讯录,包括SIM卡中的联系人信息。接下来,我们将详细讨论这个主题。 首先,我们要知道在Android中访问通讯录主要涉及`ContactsContract`类,它是Android系统提供...

    手机通讯录管理系统 C语言

    【手机通讯录管理系统 C语言】 手机通讯录管理系统是一款基于C语言开发的应用程序,它主要用于管理和操作个人或组织的联系人信息。C语言以其简洁、高效和广泛的平台支持,成为实现此类系统的一个合适选择。该系统...

    安卓课程设计-手机通讯录系统全解.doc

    《安卓课程设计-手机通讯录系统全解》 在当今移动通信与互联网融合的时代,用户对手机功能的需求日益增长,而传统的手机操作系统如Symbian、Windows Mobile等已无法满足这些需求。在这种背景下,Android应运而生。...

Global site tag (gtag.js) - Google Analytics