自己制作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 是一种让用户能够更改操作系统外观的应用程序,基于 Android 操作系统的更换皮肤框架,使用 Java 开发,具有自由定制、快速切换皮肤等功能。iOS 系统同样也有更换皮肤的功能,不过相对来说 iOS 的操作系统比 Android 更加封闭
2023-06-05
自己做的守望app
守望app是基于WebRTC技术开发的Web实时视频通话应用,可以帮助用户在任何时间、任何地点与他人进行实时的音视频通话。下面,我将详细介绍守望app的实现原理和开发流程。一、技术架构守望app的技术架构图如下所示:![守望app技术架构图](https:
2023-06-05
自主开发app怎么设置
自主开发一个App需要经过很多步骤,其中一个非常重要的步骤就是设置。在这篇文章中,我将详细介绍自主开发App的设置原理和步骤。App的设置在开发App的时候,很多人可能认为设置这个步骤比较简单,但其实这个步骤的重要性不能被忽略。一个好的App设置可以让用户
2023-06-05
自己制作废品回收app
废品回收是一个日益普及的概念,它的出现对环境保护起到了至关重要的作用。由于大量的人们开始关注环保,废品回收已经成为了大众生活中的一部分。但是,仍然存在一些问题,例如如何方便地找到废品回收站点,如何确定回收价格等。鉴于此,一款废品回收app的制作就变得非常必
2023-06-05
自己也能app制作
你是否想过创建自己的应用程序(App)? 在过去,这需要有编程经验的开发人员才能完成。 当然,要成为一个开发人员需要时间,精力和经验。 但是,现在随着技术的进步,普通人也可以创建自己的应用程序。这个原理就是所谓的应用程序制作器(App builder)。在
2023-06-05
正安工业自动化手机app开发
正安工业自动化手机App是一款由正安工业自动化科技有限公司自主研发的手机应用程序。该应用程序主要是为了满足客户对于远程监测系统和报警设备的需求而开发的。通过该应用程序,用户可以充分掌握工业自动化的动态信息,实时掌握生产状况和设备状态,有效的提高工业自动化的
2023-06-05
如何自己做一个自动签到app
要做一个自动签到app,需要具备一些编程基础和相关知识。下面是一个基本的原理与流程介绍。原理:自动签到app的本质是通过模拟用户操作,实现自动完成签到的过程。因此,下面我们从用户手动签到的流程来思考自动签到app的实现。首先,用户需要打开相应的签到页面,输
2023-05-30
如何做一个自己的小程序app
在如今这个不断发展的移动互联网时代,小程序一词已经不再是陌生的概念。小程序可以说是互联网上的一种新型应用,它融合了APP和H5的优点,不需要下载即可使用,也不占用手机空间,又能够提供丰富的服务和体验。那么,如何做一个自己的小程序APP呢?下面我将为大家详细
2023-05-30
南宁自营商城app开发
南宁自营商城App是在南宁自营商城网站的基础上,通过互联网技术开发出一个移动端的应用。用户可以通过手机或平板等移动设备访问南宁自营商城,并进行购物、查询、支付等一系列线上操作。以下是南宁自营商城App开发的技术原理和详细介绍。一、技术原理1.前端技术前端技
2023-05-30
不用外包公司自己也能制作app
在如今互联网化的社会中,APP已成为企业推广、服务、销售等方面不可或缺的手段。但许多企业认为制作APP需要付出高额的代价,遂而退却。其实,APP制作不需要依靠外包公司,企业可以自己制作APP。本文将重点介绍APP制作的原理及详细步骤。一、APP制作的原理A
2023-05-30
h5自动制作app
H5自动制作App是近年来互联网技术发展的一个新兴方向,其主要目的在于简化应用开发流程,优化用户使用体验,以达到更为高效的应用开发效果。H5自动制作App将网站的H5页面代码转化为手机端的应用程序,使得开发人员仅需要针对页面进行适配,而不需要重新编写应用程
2023-05-30
android 自建app 运行报错
Android 自建 App 运行报错可能涉及很多因素,下面将结合常见错误和原因,进行详细介绍。1. 类无法转换异常(ClassNotFoundException)当执行到某个类的时候,发现这个类并不存在,就会抛出 ClassNotFoundExcepti
2023-05-30
©2015-2021 自建app开发平台 www.appbyme.cn 蜀ICP备17005078号-1