自己做的app怎么访问别人手机相册里

首先,需要明确一点:访问别人手机相册属于用户隐私范畴,一般的app是没有权限获取的。因此,如果你要开发这样的app,需要在用户使用时获得其授权。同时,也要注意相关法律和道德规范,确保不会侵犯用户权益。

关于如何访问手机相册,在移动应用程序开发中,主要有三种方式:使用Android系统提供的媒体库库、使用第三方开源库、使用原生的Java类库。

Android系统媒体库

Android系统提供了一组媒体类,可以访问设备上的音乐、视频、图片等多媒体文件资源,并能够在应用内浏览这些资源。这些类可以在应用程序中通过ContentProvider访问,而不必了解底层文件系统和路径。

以下是访问媒体库中图片资源的简单示例代码(仅适用于Android 4.4之前的版本):

```

private static final int RESULT_LOAD_IMAGE = 1;

// ...

Intent i = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);

startActivityForResult(i, RESULT_LOAD_IMAGE);

// ...

@Override

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

super.onActivityResult(requestCode, resultCode, data);

if (requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK && null != data) {

Uri selectedImage = data.getData();

String[] filePathColumn = { MediaStore.Images.Media.DATA };

Cursor cursor = getContentResolver().query(selectedImage,

filePathColumn, null, null, null);

cursor.moveToFirst();

int columnIndex = cursor.getColumnIndex(filePathColumn[0]);

String picturePath = cursor.getString(columnIndex);

cursor.close();

// PicturePath可以被用来做后续的操作,比如上传到服务器等等

}

}

```

这个例子中,首先通过Intent.ACTION_PICK打开系统选择图片界面,用户选择图片后返回上一个activity,之后通过getContentResolver()获得ContentResolver对象,然后通过创建一个cursor并对内容进行查询得到图片路径,可以将这个路径上传到服务器或是保存在本地数据库中。

第三方开源库

除了系统提供的媒体库外,还有一些开源的第三方库,比如Picasso和Glide。这些库能够更好的处理图片加载和缓存,而且也允许更好的控制其他相关的设置,比如下载图片的线程池数量。使用这些库可以轻松完成图片的加载、显示和缓存等相关操作。

以下是使用Picasso库加载图片的示例代码:

```

Picasso.get().load("http://i.imgur.com/DvpvklR.png").into(imageView);

```

这个代码非常简单,只需要将要显示的图片连接放在load()中就可以了,同时,通过into()将imageView作为参数传入即可实现图片的加载和显示。

原生Java类库

如果你要开发的app是纯Java语言写的,可以使用Java原生的类库来操作文件和访问图片。下面是一个简单的例子:

```

import java.io.File;

import java.io.IOException;

import javax.imageio.ImageIO;

import java.awt.image.BufferedImage;

public class App {

public static void main(String[] args) {

File input = new File("image.jpg");

try {

BufferedImage image = ImageIO.read(input);

} catch (IOException e) {

e.printStackTrace();

}

// 对图片进行后续操作

}

}

```

上面是Java的图片加载库,只需要提供图片的文件名即可把图片转成BufferedImage对象,可以进一步对其进行处理。

以上是访问手机相册的三种方法,需要根据具体应用场景选择最适合自己的方案。不过,需要注意的是,无论使用以上哪种方式,都需要获得用户的授权,确保用户隐私安全,同时应该尽可能地遵守相关的法规和道德规范。