Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/183.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用DriveId获取Google驱动器文件夹名称和路径_Java_Android - Fatal编程技术网

Java 使用DriveId获取Google驱动器文件夹名称和路径

Java 使用DriveId获取Google驱动器文件夹名称和路径,java,android,Java,Android,我正在使用GitHub上提供的google drive api内容来选择文件夹。使用下面的代码,我可以获取文件夹id以传输数据,但无法获取文件夹名称或文件夹路径。有人能帮忙吗?我试图使用asDriveFolder,但未获得所需信息 下面是获取所选文件夹的驱动器Id的代码 public class GoogleFolderSelector extends GoogleDriveBaseActivity { String TAG = "Google Folder Picker";

我正在使用GitHub上提供的google drive api内容来选择文件夹。使用下面的代码,我可以获取文件夹id以传输数据,但无法获取文件夹名称或文件夹路径。有人能帮忙吗?我试图使用asDriveFolder,但未获得所需信息

下面是获取所选文件夹的驱动器Id的代码

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可以有多个父驱动器。希望这有帮助。将探索,谢谢