自己制作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之前,需要掌握以下基础知识:1.
2023-06-05
自己做区块链交易平台app
随着区块链技术的飞速发展,人们对于区块链交易平台的需求也越来越大。本文将为大家介绍自己做区块链交易平台app的原理和详细步骤。一、原理区块链交易平台是基于区块链技术的去中心化平台,用户可以在该平台上进行数字资产的交易。与传统的中心化交易平台不同,区块链交易
2023-06-05
自己手机开发app
开发手机应用程序是一个技术活儿,需要涉及多个方面的知识。这里我会简要介绍一下开发手机应用程序的基本原理和步骤。第一步,确定需求和功能,这是程序开发的重要一步。在确定需求时,最好可以尽量考虑到用户需求的细节,并将这些需求转化为具体的功能点,以便在开发过程中进
2023-06-05
自己开发安卓app多少钱
想要开发安卓app,需要了解一些开发基础知识和技能。在成功开发一款app之前,需要考虑的因素很多,其中就包括费用。作为一名开发者,需要了解自己的资源和需求,再做出决策。总体来说,自己开发一款安卓app的费用可以被分为两个部分:开发费用和发布费用。开发费用开
2023-06-05
自己一个人可以做app吗苹果
在当今移动互联网时代,手机APP已经成为人们生活中不可或缺的一部分,它们可以为人们带来各种便捷和娱乐。对于许多人来说,想要自己制作一个APP可能是一个有趣的想法,但是他们或许不知道如何开始或者是否真的能够独立完成一个APP。在这篇文章中,我们将为您介绍一下
2023-06-05
怎样制作一个自己的app
随着移动互联网的快速发展,手机应用程序(App)成为人们生产、学习和生活中不可或缺的一部分。而制作一个自己的App不仅能够实现个人创造价值,也可以帮助个人或公司推广自己的产品和服务。本文将介绍制作一个App的一般流程和常用的开发工具,希望可以帮助读者实现自
2023-06-05
怎么自己制作手机app oppo
制作手机App对于很多人来说似乎是一个充满神秘的领域,实际上,只要掌握正确方法和工具,任何人都可以制作自己的手机App。本文将介绍如何在OPPO手机上自己制作App。首先,要使用一款好的应用程序编辑器,安卓系统上常用的有Android Studio等。在O
2023-06-05
学校里面的app是学校自己做的吗
学校的移动端应用程序通常是由学校派专人或委托第三方开发公司进行制作和开发。现代高校不仅仅是为了提供教育,也为了更好地服务学生和教职工,提供更加便捷的学习和生活方式,满足学生多样化需求的同时加强和扩大学校的品牌形象和影响力。学校的移动端应用程序由专业的程序员
2023-06-05
想自己做个顺风车app多少钱
想自己做一个顺风车app,费用会涉及到很多方面,包括基础设施、开发团队、维护和营销。以下将对这些方面进行介绍。一、基础设施1.服务器:为了支持大量用户的访问和数据存储,您需要设置多个服务器。因此,您需要购买或租用服务器,比如亚马逊Web服务(AWS)或Go
2023-05-31
小说封面自己制作的app
小说封面是书籍销售中的重要一环,它可以吸引读者的注意力,让读者更有兴趣阅读该小说。因此,需求量较大的小说市场渐渐衍生出了一批封面自制软件,帮助用户制作出充满艺术感和商业氛围的封面。制作小说封面自己的app可以采用以下三种方式:1. 美术设计软件美术设计软件
2023-05-31
app找外包公司还是自建团队
在创业初期,应该首先考虑成本、时间和人力资源等因素选择是否要将app的开发外包给第三方公司还是自行建立团队。一、外包开发优点:1、成本较低:相较于自建团队,外包公司的开发成本相对较低,便于贸易商掌握项目开发成本,这通常是初创企业非常关注的。2、技术经验丰富
2023-05-30
app开发自学教程java
想要学习Java开发APP吗?本文将为你提供一份可供自学Java开发APP的教程。Java是一种运行于多个平台的计算机编程语言,它可以帮助你高效地构建出各种类型的应用程序,无论是桌面应用还是移动应用。下面将为您介绍学习Java开发移动应用的步骤。1. 了解
2023-05-30
©2015-2021 自建app开发平台 www.appbyme.cn 蜀ICP备17005078号-1