在Android设备上从pick文件中获取绝对路径,可以通过以下步骤实现:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("*/*"); // 选择所有类型的文件
startActivityForResult(intent, PICK_FILE_REQUEST_CODE);
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == PICK_FILE_REQUEST_CODE && resultCode == RESULT_OK) {
Uri uri = data.getData();
String absolutePath = getAbsolutePathFromUri(uri);
// 在这里可以使用获取到的绝对路径进行后续操作
}
}
private String getAbsolutePathFromUri(Uri uri) {
String[] projection = {MediaStore.Images.Media.DATA};
Cursor cursor = getContentResolver().query(uri, projection, null, null, null);
int columnIndex = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
String absolutePath = cursor.getString(columnIndex);
cursor.close();
return absolutePath;
}
以上代码中,我们使用了Android的ContentResolver和MediaStore类来查询文件的绝对路径。注意,这种方法只适用于选择媒体文件(如图片、音频、视频等),对于其他类型的文件可能需要使用不同的方法来获取绝对路径。
推荐的腾讯云相关产品:腾讯云对象存储(COS)
请注意,以上答案仅供参考,具体实现方式可能因应用场景和需求而有所不同。
领取专属 10元无门槛券
手把手带您无忧上云