自己制作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,可
2023-06-05
做个自己app软件
做一个自己的APP软件,需要学习和掌握的知识点较多,包括编程语言、开发工具、UI设计、前端和后端知识等等。下面将会从这几个方面进行详细介绍。一、选择编程语言APP软件的开发需要选择一种编程语言,常用的编程语言有Java、Swift、Objective-C等
2023-06-05
自己做app的网站
在现今移动互联网时代,手机应用程序已经成为人们日常生活必不可少的一部分。越来越多的人开始制作自己的手机应用程序并发布,以满足自己和大众的需求。如果你也想成为一名应用程序开发者,不妨尝试使用自己做app的网站进行实现。自己做app的网站,通常是集成了一系列应
2023-06-05
自己的网店能做成app么安全吗
在当今移动互联网时代,越来越多的人选择使用手机APP来购买商品和服务。因此,一些创业者开始考虑把自己的网店做成APP,以拓展自己的业务。但是,很多人担心把网店做成APP是否安全,接下来,我来介绍一下相关原理和安全性问题。首先,把网店做成APP需要有开发技术
2023-06-05
如何制作自己app
如果你想制作自己的应用程序(App),以下是一些基本步骤:1.确定你的应用程序类型在制作应用程序之前,你需要确定你的应用类型,例如游戏、娱乐、工具等。相应地,你需要了解该应用程序所需的功能和设备要求。2.学习编程语言和平台为了开发应用程序,你需要了解编程语
2023-05-30
企业做自己的app有什么优劣势嘛
随着移动互联网的普及,越来越多的企业开始注重自己的移动应用程序(APP)开发。相比于只拥有网站,有自己的APP确实有很多好处. 但是,企业做自己的APP也需要考虑其优劣势,才能做出更加明智的决策。优势:1. 增加企业形象和品牌认知度移动应用程序(APP)已
2023-05-30
可以自己做脸部特效的app
目前,随着移动设备技术的不断发展,越来越多的人开始用手机和平板电脑进行各种操作。这也促使了许多 app 的开发,其中之一就是脸部特效 app。脸部特效能给用户带来很多乐趣,比如在社交媒体上分享自己卖萌的照片或自拍视频。那么,如何自己开发一个脸部特效 app
2023-05-30
介绍自己做的app界面话术
我是一名app界面设计师,我的工作是通过设计直观的用户界面,为人们提供更加便捷和好用的应用程序。在我的职业生涯中,我涉及过许多不同领域的应用程序,例如社交媒体、电子商务、游戏和教育等等。当我开始设计新的app界面时,首先要了解用户的需求和使用情况。我会与用
2023-05-30
共享自行车app开发
共享自行车app是基于智能手机端的一种应用程序,用于实现共享自行车的租赁或归还功能。该app通过GPS、蓝牙等技术定位用户的位置和自行车的位置,让用户能够快速找到附近的可用自行车,使用自己的手机扫描二维码,开锁后骑行,骑行完毕再将自行车还回指定地点锁定即可
2023-05-30
figma怎么自己做app
Figma 是一款非常流行的在线设计工具,它支持多人协作设计,且无需安装,只要有网络,即可随时随地进行设计工作。那么 Figma 怎么自己做 app 呢?下面将从原理和详细介绍两个方面进行说明。一、原理在 Figma 中制作 app 主要分为以下几个步骤:
2023-05-30
flutter 开发app后台自动更新
在移动应用开发中,应用的更新是很常见的情况,一般使用应用商店自动更新,但有时候有些更新需要在后台自动完成,特别是在企业级应用中,需要保证用户的安装体验,也可以避免用户手动更新产生的问题。在 Flutter 中,可以通过使用自动更新插件(例如:Flutter
2023-05-30
app开发外包还是自建好
随着移动互联网的发展,移动应用程序成为了越来越多企业、组织和个人的业务增长点。那么,对于企业或个人而言,是选择自建一支app开发团队还是将app开发外包给专业的团队呢?这是一个需要考虑成本、时间、技术等多个因素的问题。自建开发团队自建一个app开发团队需要
2023-05-30
©2015-2021 自建app开发平台 www.appbyme.cn 蜀ICP备17005078号-1