Java 使用DriveId获取Google驱动器文件夹名称和路径
我正在使用GitHub上提供的google drive api内容来选择文件夹。使用下面的代码,我可以获取文件夹id以传输数据,但无法获取文件夹名称或文件夹路径。有人能帮忙吗?我试图使用asDriveFolder,但未获得所需信息 下面是获取所选文件夹的驱动器Id的代码Java 使用DriveId获取Google驱动器文件夹名称和路径,java,android,Java,Android,我正在使用GitHub上提供的google drive api内容来选择文件夹。使用下面的代码,我可以获取文件夹id以传输数据,但无法获取文件夹名称或文件夹路径。有人能帮忙吗?我试图使用asDriveFolder,但未获得所需信息 下面是获取所选文件夹的驱动器Id的代码 public class GoogleFolderSelector extends GoogleDriveBaseActivity { String TAG = "Google Folder Picker";
public class GoogleFolderSelector extends GoogleDriveBaseActivity {
String TAG = "Google Folder Picker";
private static final int REQUEST_CODE_OPENER = 1;
@Override
public void onConnected(Bundle connectionHint) {
super.onConnected(connectionHint);
IntentSender intentSender = Drive.DriveApi
.newOpenFileActivityBuilder()
.setMimeType(new String[]{DriveFolder.MIME_TYPE})
.build(getGoogleApiClient());
try {
startIntentSenderForResult(
intentSender, REQUEST_CODE_OPENER, null, 0, 0, 0);
} catch (IntentSender.SendIntentException e) {
Log.w(TAG, "Unable to send intent", e);
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
try {
switch (requestCode) {
case REQUEST_CODE_OPENER:
if (resultCode == RESULT_OK) {
DriveId driveId = (DriveId) data.getParcelableExtra(
OpenFileActivityBuilder.EXTRA_RESPONSE_DRIVE_ID);
DriveFolder driveFolder = driveId.asDriveFolder();
showMessage("Folder Path"+ driveFolder);
showMessage("Selected folder's ID: " + driveId);
}
finish();
break;
default:
super.onActivityResult(requestCode, resultCode, data);
break;
}
} catch (Exception e) {
e.printStackTrace();
Popup.longpopup("Connection Established, Click to select Folder", this);
}
}
}
为了获得文件夹名,让我们使用元数据,如下所示
Task<Metadata> getMetadataTask = getDriveResourceClient().getMetadata(file);
getMetadataTask
.addOnSuccessListener(this,
metadata -> {
showMessage(getString(
R.string.metadata_retrieved, metadata.getTitle()));
finish();
})
.addOnFailureListener(this, e -> {
Log.e(TAG, "Unable to retrieve metadata", e);
showMessage(getString(R.string.read_failed));
finish();
});
Task getMetadataTask=getDriveResourceClient().getMetadata(文件);
getMetadataTask
.addOnSuccessListener(此,
元数据->{
showMessage(getString)(
检索到R.string.metadata_,metadata.getTitle());
完成();
})
.addOnFailureListener(此,e->{
Log.e(标记“无法检索元数据”,e);
showMessage(getString(R.string.read_失败));
完成();
});
这是你的电话号码
对于文件夹路径,我曾尝试检索,但似乎没有必要,因为您可以使用driveId操作所有内容,例如将文件添加到此driveId文件夹或在此driveId文件夹中创建另一个文件夹。探索会让你看得更清楚 为了获得文件夹名,让我们使用元数据,如下所示
Task<Metadata> getMetadataTask = getDriveResourceClient().getMetadata(file);
getMetadataTask
.addOnSuccessListener(this,
metadata -> {
showMessage(getString(
R.string.metadata_retrieved, metadata.getTitle()));
finish();
})
.addOnFailureListener(this, e -> {
Log.e(TAG, "Unable to retrieve metadata", e);
showMessage(getString(R.string.read_failed));
finish();
});
Task getMetadataTask=getDriveResourceClient().getMetadata(文件);
getMetadataTask
.addOnSuccessListener(此,
元数据->{
showMessage(getString)(
检索到R.string.metadata_,metadata.getTitle());
完成();
})
.addOnFailureListener(此,e->{
Log.e(标记“无法检索元数据”,e);
showMessage(getString(R.string.read_失败));
完成();
});
这是你的电话号码
对于文件夹路径,我曾尝试检索,但似乎没有必要,因为您可以使用driveId操作所有内容,例如将文件添加到此driveId文件夹或在此driveId文件夹中创建另一个文件夹。探索会让你看得更清楚 尝试在Drive-restapi中这样做,因为GDAA只提供由Android应用程序创建的文件和文件夹。您可以查看此相关信息,以帮助您在android中实现RESTAPI。还请注意,驱动器没有实际路径,因为一个驱动器ID可以有多个父级。希望这有帮助。将在驱动器REST API中进行探索,感谢您这样做,因为GDAA将只提供由Android应用程序创建的文件和文件夹。您可以查看此相关信息,以帮助您在android中实现RESTAPI。还请注意,驱动器没有实际路径,因为驱动器ID可以有多个父驱动器。希望这有帮助。将探索,谢谢