自己制作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是一种具有交互性的软件,主要目的是将同一个社区内的人们进行互动,从而提高社区的凝聚力和活跃度。而在社区app中卖货也成为了一种比较常见的运营模式。下面将介绍自建社区app卖货的原理或详细介绍。一、建立社区如果想要在社区app中卖货,首先必须建立一
2023-06-05
自学开发app要多久自学演讲
自学开发App需要的时间会因为每个人的学习速度和基础不同而不同,但一般来说,学习开发App需要耐心、毅力和刻苦的精神,才能够掌握基本的开发技能,制作出自己的应用程序。首先,学习开发App需要基础编程知识。你需要掌握至少一种编程语言,如Java、Swift、
2023-06-05
自己怎么开发app平台软件教程
开发app平台软件需要掌握一定的编程语言和开发框架,以下是一些原理和详细的介绍,以便更好地了解和实践。1. 编程语言开发app平台软件需要选择一种编程语言,常见的有Java、Swift、Objective-C、C#等。其中Java是最常用的语言,它可以在不
2023-06-05
浙江自由开发者app
浙江自由开发者App是浙江省统计局与浙江省开发者联盟合作开发的一款创新的应用程序。其主要功能是将政府和开发者有关数据资源整合起来,便于开发者开发创新应用,同时也为政府部门提供了一种更加高效的数据资源分享方式。自由开发者App的原理在于,政府部门将数据资源开
2023-06-05
怎样免费制作自己的app
制作自己的App是一项快速成长的行业。好的应用程序可能会成为你的业务或品牌的一部分,并为你带来大量的收益。最重要的是,现在制作自己的App非常容易了。以下是制作自己的免费App的详细指南。1.选择一个平台在制作自己的App之前,你需要决定你将应用程序发布到
2023-06-05
怎么自己制作跑腿app
制作跑腿 App 的基本原理是,需要一个支持在线支付和定位功能的应用程序,用户可以通过它委托他人进行跑腿服务。以下是详细介绍:1. 基础技术跑腿 App 通过移动平台运行,其基础技术包括:iOS 或 Android App 开发框架、前端开发技术(HTML
2023-06-05
怎么自己制作明星勋章app
制作明星勋章App的原理其实很简单,主要涉及到几个重要的步骤,包括设计和开发应用程序的UI界面、实现勋章的生成和分享功能等。下面我们来详细介绍一下。1.确定功能和需求首先要确定这个App的功能和需求,明星勋章App通常需要提供一些预设模板,让用户可以在模板
2023-06-05
怎么制作属于自己的app
制作属于自己的app需要掌握一定的编程知识和技能。如果你没有编程基础,可以在学习一些编程基础知识后再开始。下面是一个简单的步骤,介绍如何制作属于自己的app。1. 确定app的目的和功能在开始制作app前,你需要明确你要制作的app的目的和功能。你可以思考
2023-06-05
如何自建题库app
自建题库APP是一个通用性较强的应用,可用于教育、考试、招聘等领域,能方便的管理和发布题目。对于有需要的用户而言,可以将自建题库APP用于日常学习、备考、或是面试等场合。下面将从系统架构、功能实现等方面详细介绍自建题库APP。 1.系统架构设计:自建题库A
2023-05-30
开发app选择外包还是自建团队
在开发移动应用程序时,决策是自建团队还是外包团队是至关重要的决策。这涉及到公司的商业模式、预算、战略、团队的技能和市场需求等多方面因素。在本文中,我们将探讨选择外包还是自建团队的原因和优缺点。首先,外包团队在为客户提供服务方面有很多优势。外包团队通常是精通
2023-05-30
app开发自学用什么软件
手机APP是当前互联网领域最为热门的一个方向之一,很多人都希望可以通过自学来掌握APP开发技巧,而实现这一目标的关键之一则是选择合适的软件工具。那么,究竟如何选取适合自学APP开发的软件工具呢?首先,在选择软件工具时应考虑自己的学习目标和学习水平,如果是初
2023-05-30
©2015-2021 自建app开发平台 www.appbyme.cn 蜀ICP备17005078号-1