自己制作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时,很多开发者都会考虑如何将谷歌广告接入到自己的应用程序中,以实现通过广告收益来获得应用的持续盈利。谷歌广告是一种非常受欢迎的移动广告形式,能够帮助应用程序获取更多用户,同时为开发者提供更多的收益。本文将介绍如何在自己的应用中接入谷歌广告的
2023-06-05
自学app制作教程
App制作是现在很多人所学的技能之一。随着智能手机用户的不断增多,以及人们对个性化软件的需求不断增加,很多人想要自己制作一款个性化的APP来满足这一需求。本文将对APP制作的原理和详细介绍进行讲解,帮助想要自学APP制作的读者更好地了解该领域的知识。一、A
2023-06-05
自媒体做app
自媒体是互联网时代的产物,具有自由、公正、多元的特点,越来越受到人们的青睐。而移动互联网的发展,也给自媒体的发展带来了新的机遇。自媒体做APP,也成为了一种新的趋势。一、自媒体做APP的意义1.提高阅读体验随着全民阅读时代的到来,人们对阅读体验的要求越来越
2023-06-05
自贡交通app开发多少钱一个月
一款优秀的交通APP需要有完善的功能模块,如动态路况预测、公交线路查询、拥堵路段避让、实时公交到站提醒等等。这些功能模块都需要付出相应的人力、物力及技术支持,因此开发一个交通APP并不是一项简单的工作。开发交通APP的费用取决于开发的规模与复杂度,以及开发
2023-06-05
淄博怎么自己开发app软件
开发一个app软件是一项复杂而有挑战性的任务,但对于有志于学习和探索的淄博人来说,发掘自己在这方面的潜力也是一项非常有趣的尝试。下面是一个基本的开发流程和开发工具的介绍来帮助淄博人解决这个难题。1. 确定应用程序的需求和目标对于开发app软件的第一步是,在
2023-06-05
直播app自己制作
随着网络的高速发展,直播已成为了一个很流行的社交方式,很多人也想要了解如何自己制作一个直播app。其实,制作直播app难度并不算大,本文将介绍制作直播app的原理和步骤。一、原理制作直播app的原理是:利用网络传输技术和流媒体技术将实时视频、音频等内容上传
2023-06-05
怎么在手机上自己做app
在智能手机时代,手机应用程序(APP)在人们生活中扮演着越来越重要的角色。如今,越来越多的人开始考虑自己做APP,用来实现和完善自己的创意和需求。那么,如何在手机上自己做APP呢?下面我们就一起来详细介绍一下。作为一个普通人,你可以通过工具来实现制作自己的
2023-06-05
信阳人自己做的app
信阳市位于中国河南省南部,旅游资源丰富,许多开发者看中了这个机会,开始自己开发与信阳相关的手机应用程序。这些应用程序不仅能够满足信阳市民的需求,还为外来游客提供了便利。一款颇受欢迎的信阳旅游app名为“信阳游”,该应用程序由信阳华夏文化传媒有限公司开发并更
2023-06-05
想自学app开发可以吗
自学APP开发是完全可行的。随着移动互联网时代的发展,APP开发已成为一项广受欢迎的技能。有许多在线资源和工具,可以提供指导和支持,使自学变得更容易。在本文中,我将向您介绍APP开发的基础知识和入门技巧。app开发需要的基本技能在自学APP开发之前,您需要
2023-05-31
如何自学制作app软件
要自学制作 app 软件,需要掌握一定的编程知识和技能。本文将从原理和详细介绍两个角度,为初学者介绍如何自学制作 app 软件。一、app 软件的原理1. 了解操作系统在制作 app 软件之前,需要了解操作系统的原理。操作系统是计算机系统的核心,是各种软件
2023-05-30
可以自己制作单词本的app
自己制作单词本的app可以帮助用户更有效地学习、记忆单词。下面介绍一下该app的原理及详细介绍。1. 原理自己制作单词本的app的原理是将用户输入的单词存储在数据库中,并提供相关功能,如添加、编辑、删除单词。此外,还可以提供一些辅助学习的功能,例如单词拼写
2023-05-30
开发的app用的是系统自带字体
在移动应用开发中,字体对于设计和用户体验非常关键。在iOS和Android操作系统中,开发人员可以使用系统默认的字体或选择自己喜欢的字体来覆盖系统默认字体。系统默认字体是iOS和Android操作系统自带的字体,它们是由操作系统厂商为用户提供的标准字体。这
2023-05-30
©2015-2021 自建app开发平台 www.appbyme.cn 蜀ICP备17005078号-1