自己制作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,而且还不需要花费太多的时间和金钱。下面是一些自建app不花钱的平台,它们提供的服务可能会略有不同
2023-06-05
自己做类似于百词斩的app
要自己做一个类似于百词斩的App,需要有一定的编程基础,包括但不限于基础的编程语言,例如Java或Swift,以及相关的开发工具和环境,例如Android Studio或Xcode等。首先,需要明确百词斩这个App的功能和特点。百词斩是一款英语单词记忆Ap
2023-06-05
自己开发app怎么做
开发一个 APP 需要经过多个阶段,其中包括需求分析、UI 设计、编码实现、测试、上线发布等,下面将会详细介绍这些阶段。1.需求分析阶段在开发任何一个软件之前,我们需要先明确自己的需求,包括:目标用户:确定你的 APP 主要面向哪些人群,如何能够吸引他们使
2023-06-05
自己制作一个商家点菜app
制作商家点菜app需要掌握以下几个方面的技能:1. 界面设计:商家点菜app的界面需要具有良好的视觉效果,使用户能够快速准确地找到自己要的菜品。2. 前端开发:商家点菜app的前端需要使用Html5/CSS/Javascript等技术实现,以及移动端开发框
2023-06-05
怎样去介绍自己做的app
我个人开发的App是一款名为“健康之路”的应用程序。它基于健康数据管理和分析方面,为用户提供了一个全面的,个性化的健康解决方案。健康数据可是用户的健康监护和管理的基础。而“健康之路”App具备很多数据监控功能,如身高体重、心率、血糖、血压、饮水量等等。每个
2023-06-05
怎么开发属于自己的app软件
要开发属于自己的App软件,首先需要了解App软件的基本架构和开发步骤,然后根据自己的需求、目标和市场调研情况,选择合适的开发工具和技术,进行应用程序开发、测试、发布等流程。下面将详细介绍App软件开发的具体步骤。一、App软件开发基本架构App软件开发通
2023-06-05
应用公园零编程自己制作app
应用公园是一款可以帮助用户零编程自己制作APP的应用。在应用公园中,用户可以通过拖拽式的可视化操作,快速制作出自己的APP。基于其易操作性和支持多端输出的特点,应用公园被越来越多的人所使用。应用公园的原理是通过拖拽式的操作,让用户选用所需的模块和功能,然后
2023-06-05
许嵩为什么自己做app
许嵩作为一位音乐人,除了创作音乐之外,他还有一种特别的热情,就是创新科技。他在近年来一直在尝试和实践这个方向,这包括在自己的音乐作品中尝试用AI进行合成和创新,还有他自主研发的音乐社交类App——“许嵩秀”。那么,为什么许嵩会对自己做App如此狂热呢?下面
2023-06-05
能够自己制作字帖的app
制作字帖是许多人学习中国书法的重要环节。随着移动互联网和智能手机的普及,越来越多人希望能够在手机端随时随地制作自己的字帖。下面,我将详细介绍一种自己制作字帖的方法,以实现在手机上制作自己的字帖。先说一下原理:制作字帖的关键是能够准确地控制字体和字形。为了达
2023-05-30
哪个手机app 支持自建词库软件
很多人在使用手机上输入文字时,都会遇到一些自己的专业术语或领域词汇无法识别的问题。为了解决这个问题,一些可支持自建词库的手机软件也应运而生。下面我将分析其中一个支持自建词库的手机app,其名字为“搜狗输入法”。“搜狗输入法”是一款智能输入软件,其功能包括语
2023-05-30
华为自带的日历app 开发
华为自带的日历app是一款非常实用的应用软件,可以帮助用户管理日程、时间和事件等信息。其具有多种功能,包括日程添加、日程查询、提醒设置,以及与其他应用的数据同步等功能。下面将对华为自带的日历app的开发原理和详细介绍进行分析。一、开发原理华为自带的日历ap
2023-05-30
粉笔app上怎么找自己做过的题
粉笔app是一款非常受欢迎的学习辅助软件,可以帮助用户学习各种学科,包括数学、物理、化学、英语等等。该软件可以提供题目、解题思路、视频讲解、习题讲解等多种功能,尤其是习题库功能,用户可以在上面刷题,巩固自己的知识点,从而提高自己的学习成绩。但是,随着使用时
2023-05-30
©2015-2021 自建app开发平台 www.appbyme.cn 蜀ICP备17005078号-1