Android studio 获取手机联系人和号码并输出
初学Android studio 需要做一个功能,获取联系人信息、并将联系人的名字,号码输出到显示屏上。
使用Android studio版本:3.2 JDK版本: jdk1.8.0_151
首先在清单文件添加权限,获取联系人读写权限
<uses-permission android:name="android.permission.WRITE_CONTACTS"/>
<uses-permission android:name="android.permission.READ_CONTACTS"/>
然后是编写布局文件
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"><ListViewandroid:id="@+id/list_view"android:layout_width="match_parent"android:layout_height="match_parent"></ListView></android.support.constraint.ConstraintLayout>
JAVA代码
/*** @author SmallLetters*/
public class MainActivity extends AppCompatActivity {private ListView mlist_view;private ArrayAdapter<String> mAdapter;private List<String> mContatcList = new ArrayList<>();public static final int REQ_CODE_CONTACT = 1;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);initView();initAdapter();checkContactPermission();}/*** 检查申请联系人权限*/private void checkContactPermission() {if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_CONTACTS)!= PackageManager.PERMISSION_GRANTED) {//未获取到读取联系人权限//向系统申请权限ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.READ_CONTACTS}, REQ_CODE_CONTACT);} else {query();}}private void query() {ContentResolver contentResolver = this.getContentResolver();Cursor cursor = contentResolver.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,null, null, null, null);Log.d("SmallLetters", ContactsContract.CommonDataKinds.Phone.CONTENT_URI.toString());if (cursor != null) {while (cursor.moveToNext()) {String name = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));String number = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));mContatcList.add("name" + name + "number" + number);}//更新数据mAdapter.notifyDataSetChanged();cursor.close();}}private void initAdapter() {mAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, mContatcList);mlist_view.setAdapter(mAdapter);}private void initView() {//获取list控件mlist_view = findViewById(R.id.list_view);}@Overridepublic void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {//判断用户是否,同意 获取联系人授权if (requestCode == REQ_CODE_CONTACT && grantResults.length > 0&& grantResults[0] == PackageManager.PERMISSION_GRANTED) {//获取到读取联系人权限query();} else {Toast.makeText(this, "未获取到联系人权限", Toast.LENGTH_SHORT).show();}}
}
Android studio 获取手机联系人和号码并输出相关推荐
- Android Studio 获取手机联系人并进行,发短信,打电话,增删改操作
1.总体设计 我的整体功能设计相对简单.一个主要的联系人显示界面,使用ListView将得到联系人数据进行显示,通过点击,长按联系人事件触发相应的弹窗(Dailog)然后选择想要的功能.通过点击加号图 ...
- android5.1本机号码,Android获取手机本机号码的实现方法
Android获取手机本机号码的实现方法 反射TelephoneManager 获取本机号码,注意一下提供的接口有的SIM卡没写是获取不到的,该接口只适配Android5.0以上版本 public S ...
- android添加sdk版本号,Android编程获取手机型号、sdk版本及firmware版本号
Android开发平台中,可通过TelephonyManager 获取本机号码. TelephonyManager phoneMgr=(TelephonyManager)this.getSystemS ...
- Android中获取手机中的联系人信息
#Android中获取手机中的联系人信息 1.0.查看系统通讯录的表,表路径:data->data->com.android.providers.contacts->database ...
- android工程怎么连手机,android studio与手机连接调试步骤详解
android studio 版本不同连接手机方式有细微的不同,主要方式相似.介绍主要分手机和电脑两部分介绍. 一.手机部分 1.手机端下载一个"一键root权限获取",在安装的过 ...
- android 自动获取手机验证码
真的很奇怪大家的复制粘贴功能,一篇自动获取手机验证码的文章各大平台争相转发,我以为很牛逼,到后来发现不能用,可能我技术不够吧,复制粘贴还不到家. android 自动获取手机验证码好处 :① 用户不用 ...
- 错误 程序包android.app不存在,运行.app时Android Studio获取包名称错误
运行.app时Android Studio获取包名称错误 我将程序包名称从com.mycompany.myapplication更改为com.mycompany.testapp. 一切都构建良好,但是 ...
- Android杂谈---获取手机屏幕大小
Android杂谈---获取手机屏幕大小 SurfaceView简单例子 玩转Android---UI篇---ZoomControls放大缩小图片 更多相关推荐 这里总结下android中关于手机屏幕 ...
- 【Android Studio安装部署系列】十一、Android studio获取数字签名信息
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 概述 下面介绍下调试版本和发布版本获取数字签名的方法,通过以下方法可以获取到SHA1和MD5. 一般在使用分享功能,在第三方平台中创建应用 ...
最新文章
- IIS异常:CS0016: 未能写入输出文件“c:\WINDOWS\Microsoft.NET\Framework\.。。”--“拒绝访问...
- cassandra 存储list数组
- 河南工程学院计算机科学与技术在哪个校区,河南工学院新生在哪个校区_有几个校区及地址介绍...
- AlarmManager类的应用(实现闹钟功能)
- FFmpeg中MPEG-4编码程序追踪,其他FFMPEG自带编码器同理
- 分布式云+dubbo+zookeeper+Springmvc整合
- leetcode1299. 将每个元素替换为右侧最大元素
- freetype字体位图转距离场_那些火遍ins的字体小技巧,不看你就亏了
- CS224d lecture 7札记
- MySQL/InnoDB中,乐观锁、悲观锁、共享锁、排它锁、行锁、表锁、死锁概念的理解...
- CAD建模软件BricsCAD 22.2.03 for Mac
- ASP.NET OAuth:解决refresh token无法刷新access token的问题
- l298n使能端跳线帽_L298N 驱动模块的应用
- 统计学习方法——统计学习基础(一)
- CS1.5制造机器人的命令
- 运放输入偏置电流方向_【转】运放输入偏置电流
- 30个Eclipse键盘快捷键大全,让你工作效率翻倍
- C语言 两种方法优化:输入一个日期的年、月、日,计算并输出这天是该年的第几天。
- oracle改密码sql语句,Oracle 修改数据库密码
- 全面正面解读:nmn的副作用和危害怎么样?nmn副作用及应对方法?