自己制作app获取联系人相册

随着移动互联网的快速发展,手机已经成为了我们日常生活中必不可少的工具之一。而移动应用(APP)的开发和使用也日益增多。一些应用需要获取用户的联系人和相册等隐私信息,这对于一些不知情的用户来说是非常危险的。那么,如果自己制作一个获取联系人和相册的APP,该如何实现呢?下面就为大家介绍一下相关的原理和具体实现步骤。

一、获取联系人

在Android系统中,可以通过ContentProvider实现对联系人信息的访问。ContentProvider类是Android系统提供的一种标准的数据共享方式,所有的数据都通过一个uri进行访问,并返回一个数据流。而联系人信息的uri为ContactsContract.Contacts.CONTENT_URI。我们可以直接通过以下 ContentResolver 对象的方法来获取联系人信息:

```java

ContentResolver cResolver = getContentResolver();

Cursor cursor = cResolver.query(

ContactsContract.Contacts.CONTENT_URI, null, null, null, null);

```

查询得到的cursor是一个数据流,其中包含了联系人的各种信息。其中,ContactsContract.CommonDataKinds.Phone类表示联系人的电话信息,ContactsContract.Contacts类表示联系人的基本信息。获取电话信息和基本信息的代码如下:

```java

if (cursor.getCount() > 0) {

while (cursor.moveToNext()) {

String id = cursor.getString(

cursor.getColumnIndex(ContactsContract.Contacts._ID));

String name = cursor.getString(

cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));

if (Integer.parseInt(cursor.getString(

cursor.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0) {

Cursor pCursor = cResolver.query(

ContactsContract.CommonDataKinds.Phone.CONTENT_URI,

null,

ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = ?",

new String[]{id},

null

);

if (pCursor.moveToNext()) {

String phoneNum = pCursor.getString(

pCursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));

Log.e("AAA", "id:" + id + ",name:" + name + ",phone:" + phoneNum);

}

pCursor.close();

}

}

}

cursor.close();

```

这样就可以获取到联系人的所有基本信息和电话信息。

二、获取相册

Android系统中提供了一种叫做MediaStore.Images.Media的接口,可以方便地访问手机的相册信息。我们可以通过以下代码获取到相册中所有的图片信息:

```java

ContentResolver cResolver = getContentResolver();

Cursor cursor = cResolver.query(

MediaStore.Images.Media.EXTERNAL_CONTENT_URI,

null,

null,

null,

MediaStore.Images.Media.DATE_MODIFIED

);

```

这里的EXTERNAL_CONTENT_URI表示的是SD卡上的图片,如果要获取内部存储的图片信息,可以将EXTERNAL_CONTENT_URI改为INTERNAL_CONTENT_URI。获取到Cursor后,我们可以通过遍历Cursor获取到所有的图片信息:

```java

if (cursor != null && cursor.getCount() != 0) {

while (cursor.moveToNext()) {

String title = cursor.getString(

cursor.getColumnIndex(MediaStore.Images.Media.TITLE));

String path = cursor.getString(

cursor.getColumnIndex(MediaStore.Images.Media.DATA));

long size = cursor.getLong(

cursor.getColumnIndex(MediaStore.Images.Media.SIZE));

Log.e("AAA", "title:" + title + ",path:" + path + ",size:" + size);

}

}

```

至此,我们已经成功地获取到了手机中的联系人和相册信息。但是在实际使用中,我们要充分考虑到用户隐私等方面的问题,尽量减小对用户隐私的侵犯。


相关知识:
自助洗车app开发功能需求分析
自助洗车app是一款线上预约洗车服务的应用程序,用户可以通过这个app方便快捷地选择自己需要的洗车服务和时间,能够有效减少用户的等待时间,提高用户的体验感。以下是自助洗车app开发需要具备的功能分析:1、用户注册和登录功能用户必须要先注册成为该app的会员
2023-06-05
做自媒体需要哪些app
做自媒体越来越受到青睐,成为越来越多人选择的一种方式。自媒体可以通过各种渠道,比如微信公众号、微博、知乎、简书等,来分享自己的想法、经验和技能等。然而,想要在自媒体领域获得成功,不仅需要有优秀的内容,也需要一些辅助工具。其实,市面上有很多可以帮助自媒体人更
2023-06-05
自建单词库的app有哪些好用
随着手机和移动设备的日益普及,手机APP已经成为我们日常生活的重要组成部分。自建单词库的APP也不例外。自建单词库的APP可以让用户自由地学习和掌握单词或词汇,同时也可以方便地管理自己的单词库。下面介绍几个好用的自建单词库APP:1. AnkiAnki是一
2023-06-05
自己做的app怎么上架苹果
要将自己做的app上架到苹果应用商店,需要经过一系列的步骤和准备工作。这篇文章将会介绍这些步骤和工作,并阐述上架的原理。1. 开发者账号首先,要将自己的app上架到苹果应用商店,需要拥有苹果开发者账号。此账号是苹果开发者中心门槛之一。开发者账号分为个人账号
2023-06-05
自己做宣传单用什么手机app
如果你想自己做宣传单并且想要快速且方便地完成,那么手机应用程序可能是你需要的工具之一。在本文中,我们将简要介绍几个最受欢迎的宣传单应用程序及其基本原理。1. Canva - Canva是一款免费的图形设计应用程序。它能够帮助你快速地创建自定义宣传单。Can
2023-06-05
自己开发小说app上哪做书源
在开发小说app时,书源可以说是一个非常重要的组成部分,因为它直接关系到用户能否顺利地获取小说,而作为开发者,我们又该如何获取这些书源呢?要了解如何获取书源,我们首先需要了解什么是“书源”。简单来说,书源指的是提供小说文字内容的网站或API。也就是说,我们
2023-06-05
想自己开发一个app
如果你想开发一个自己的App,那么首先需要明确这个App要实现什么功能,是为什么人群服务的,是需要怎样的技术支持,这些问题确定之后,才可以进入下一步操作。第一步:确定App的功能和人群在确定App的功能和人群之后,就可以开始规划App的结构,该App需要的
2023-05-31
团队自己开发的app
我们团队开发的APP是一款社交类应用程序,旨在为用户提供一个安全保密的交流平台。在传统社交网络中,用户发布的信息往往是公开的,用户在发布信息时无法控制信息的流传范围,这也经常导致用户在社交网络中遇到一些尴尬的事情。因此,我们设计开发这款APP,让用户能够更
2023-05-31
免编程自己掌控app制作
现在,越来越多人想要自己制作一个属于自己的APP,但是对于非专业开发人员来说,编程语言可能是一个绕不过去的问题,不过现在已经出现了一些免编程的APP制作平台,让非技术人员也能自己掌控APP制作。这种免编程的APP制作平台通常都是基于预设模板,提供给用户进行
2023-05-30
可以自己做app的软件是什么
可以自己做app的软件主要有两种:编程软件和应用程序生成器。1. 编程软件编程软件需要具备计算机编程的基本知识,需要用编程语言编写代码,再用编译器将代码转换成可执行的应用程序。常用的编程语言包括Java、Objective-C、Swift、Kotlin等。
2023-05-30
app制作自助
随着移动互联网的发展,更多的人开始使用手机来进行日常生活和工作。很多公司都意识到了这一点,开始开发自己的移动应用程序(APP),以便更好地与用户进行交互,提高销售量或提供更好的服务。但是,对于许多人而言,制作自己的APP可能是一个令人望而却步的任务。这就是
2023-05-30
app开发简单吗可以自学吗知乎
App 开发不同于其他领域的入门门槛。即便对编程不了解,符合某些条件的人仍然可以直接从自学开始。这些条件包括有基础的电脑操作能力、喜欢解决问题的动手能力和激情、有足够的时间、有自学英文的能力或好奇心。当然,这并不意味着学习 App 开发是小儿科,它需要付出
2023-05-30
©2015-2021 自建app开发平台 www.appbyme.cn 蜀ICP备17005078号-1