Intent.ACTION_GET_CONTENT 和 Intent.ACTION_PICK 之间的区别

java

1个回答

写回答

Sharon红果果

2025-06-12 22:55

+ 关注

Android
Android

Intent.ACTION_GET_CONTENT和Intent.ACTION_PICK都是Android中的Intent动作,用于选择文件或数据。

Intent.ACTION_GET_CONTENT主要用于从文件系统或其他应用中获取内容。当用户选择一个文件时,将返回其URI。这个动作可以打开文件选择器,用户可以在其中浏览文件系统,并选择一个文件。这个动作返回的URI可以用于读取文件的内容。

Intent.ACTION_PICK主要用于从特定的数据源中获取内容。这个数据源通常是通过ContentProvider提供的,比如联系人、短信等。当用户选择一个数据时,将返回其URI。这个动作可以打开数据选择器,用户可以在其中选择一个数据。

下面是一个案例代码,演示了如何使用Intent.ACTION_GET_CONTENT和Intent.ACTION_PICK来选择文件和联系人。

Java

// 选择文件

public void selectFile() {

Intent intent = new Intent(Intent.ACTION_GET_CONTENT);

intent.setType("*/*"); // 设置文件类型为任意类型

startActivityForResult(intent, PICK_FILE_REQUEST);

}

// 选择联系人

public void selectContact() {

Intent intent = new Intent(Intent.ACTION_PICK);

intent.setType(ContactsContract.Contacts.CONTENT_TYPE); // 设置数据类型为联系人

startActivityForResult(intent, PICK_CONTACT_REQUEST);

}

// 处理选择结果

@Override

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

super.onActivityResult(requestCode, resultCode, data);

if (requestCode == PICK_FILE_REQUEST && resultCode == RESULT_OK) {

Uri uri = data.getData();

// 处理文件URI

}

if (requestCode == PICK_CONTACT_REQUEST && resultCode == RESULT_OK) {

Uri uri = data.getData();

// 处理联系人URI

}

}

使用Intent.ACTION_GET_CONTENT和Intent.ACTION_PICK选择文件和联系人的案例代码

以上是关于Intent.ACTION_GET_CONTENT和Intent.ACTION_PICK之间的区别以及使用的案例代码。通过使用这两个动作,我们可以方便地从文件系统或其他应用中获取内容,或从特定的数据源中选择数据。这些功能在开发Android应用时非常有用。

举报有用(4分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号