Android studio获取手机照片代码
时间: 2023-12-20 17:07:13 浏览: 120
你可以使用以下代码从 Android 设备中获取照片:
```java
private static final int REQUEST_CODE = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 请求权限
if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, REQUEST_CODE);
} else {
// 权限已经被授予,执行获取照片的操作
getPhotos();
}
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == REQUEST_CODE && grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// 权限已经被授予,执行获取照片的操作
getPhotos();
}
}
private void getPhotos() {
// 查询照片的 URI
Uri uri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
// 查询需要返回的列
String[] projection = {MediaStore.Images.Media._ID, MediaStore.Images.Media.DATA};
// 排序方式
String sortOrder = MediaStore.Images.Media.DATE_MODIFIED + " DESC";
// 查询语句
Cursor cursor = getContentResolver().query(uri, projection, null, null, sortOrder);
// 获取照片数据
List<String> photoList = new ArrayList<>();
if (cursor != null && cursor.moveToFirst()) {
do {
// 获取照片的文件路径
String path = cursor.getString(cursor.getColumnIndex(MediaStore.Images.Media.DATA));
photoList.add(path);
} while (cursor.moveToNext());
cursor.close();
}
// 将照片路径打印出来
for (String path : photoList) {
Log.d("MainActivity", path);
}
}
```
这段代码首先会请求读取外部存储的权限,如果权限已经被授予,就会执行获取照片的操作。获取照片的操作主要是通过查询 MediaStore 来获取照片的 URI 和文件路径。最后将照片路径打印出来。
阅读全文
相关推荐


















