Google Drive集成-使用我的Android应用程序编辑、删除、下载和更新

Google Drive集成-使用我的Android应用程序编辑、删除、下载和更新,android,google-drive-api,Android,Google Drive Api,我已经用我的Android应用程序实现了Google Drive。我可以在应用程序中查看我的所有文件。现在我想实现删除和更新谷歌驱动器文件 这是我当前的代码: public void OpenFileFromGoogleDrive() { IntentSender intentSender = Drive.DriveApi .newOpenFileActivityBuilder() .setMimeType(new

我已经用我的Android应用程序实现了Google Drive。我可以在应用程序中查看我的所有文件。现在我想实现删除和更新谷歌驱动器文件

这是我当前的代码:

public void OpenFileFromGoogleDrive() {

        IntentSender intentSender = Drive.DriveApi
                .newOpenFileActivityBuilder()
                .setMimeType(new String[]{"text/plain", "text/html"})
                .build(mGoogleApiClient);
        try {
            startIntentSenderForResult(
                    intentSender, REQUEST_CODE_OPENER, null, 0, 0, 0);
        } 
        catch (SendIntentException e) {    
            Log.w(TAG, "Unable to send intent", e);
        }    
    }

final ResultCallback<DriveContentsResult> driveContentsCallback =
            new ResultCallback<DriveContentsResult>() {
                @Override
                public void onResult(DriveContentsResult result) {    
                    if (result.getStatus().isSuccess()) {                 
                            OpenFileFromGoogleDrive();                           
                    }       
                }
            };

@Override
    protected void onActivityResult(final int requestCode,
                                    final int resultCode, final Intent data) {
        switch (requestCode) {    
            case REQUEST_CODE_OPENER:    
                if (resultCode == RESULT_OK) {
                        mFileId = (DriveId) data.getParcelableExtra(
                            OpenFileActivityBuilder.EXTRA_RESPONSE_DRIVE_ID);

                    Log.e("file id", mFileId.getResourceId() + ""); //                    0B-KGM98PVf2SdkdYTFRXZlNjSjg
                    /*String url = "https://drive.google.com/open?id="+ mFileId.getResourceId();
                    Intent i = new Intent(Intent.ACTION_VIEW);
                    i.setData(Uri.parse(url));
                    startActivity(i);*/
                    options();
                }    
                break;

            default:
                super.onActivityResult(requestCode, resultCode, data);
                break;
        }
    }
public void OpenFileFromGoogleDrive(){
IntentSender IntentSender=Drive.DriveApi
.newOpenFileActivityBuilder()
.setMimeType(新字符串[]{“text/plain”,“text/html”})
.构建(mGoogleApiClient);
试一试{
startinentsenderforresult(
intentSender,请求\代码\开启器,null,0,0);
} 
捕获(发送){
Log.w(标签“无法发送意图”,e);
}    
}
最终结果回拨驱动器内容回拨=
新的ResultCallback(){
@凌驾
public void onResult(DriveContentsResult结果){
如果(result.getStatus().issucess()){
OpenFileFromGoogleDrive();
}       
}
};
@凌驾
受保护的无效onActivityResult(最终整数请求代码,
最终int结果代码,最终意图数据){
开关(请求代码){
案例请求\代码\开场白:
if(resultCode==RESULT\u OK){
mFileId=(DriveId)data.getParcelableExtra(
OpenFileActivityBuilder.EXTRA\u响应\u驱动器\u ID);
Log.e(“文件id”,mFileId.getResourceId()+”;//0B-KGM98PVf2SdkdYTFRXZlNjSjg
/*字符串url=”https://drive.google.com/open?id=“+mFileId.getResourceId();
意向i=新意向(意向.行动\视图);
i、 setData(Uri.parse(url));
星触觉(i)*/
选项();
}    
打破
违约:
super.onActivityResult(请求代码、结果代码、数据);
打破
}
}

如何使用
DriveId
删除和更新文件?

您可以通过以下方式实现此目的:

driveFile = Drive.DriveApi.getFile(mGoogleApiClient,
        DriveId.decodeFromString(driveIdStr));
// Call to delete file.
driveFile.delete(mGoogleApiClient).setResultCallback(deleteCallback);

有关更多信息,请查看google drive文档

除了@AndroidRuntimeException的答案之外,您可能还需要查看此文档和此文档

到文件:


希望这有帮助

如何使deleteCallback删除DriveFile DriveFile=Drive.DriveApi.getFile(mGoogleApiClient,DriveId.decodeFromString(fileId));//调用以删除文件。delete(mgoogleapclient).setResultCallback(deleteCallback);删除回调处理程序?
/**
 * An activity to illustrate how to edit contents of a Drive file.
*/

public class EditContentsActivity extends BaseDemoActivity {

private static final String TAG = "EditContentsActivity";

@Override
public void onConnected(Bundle connectionHint) {
    super.onConnected(connectionHint);

    final ResultCallback<DriveIdResult> idCallback = new ResultCallback<DriveIdResult>() {
        @Override
        public void onResult(DriveIdResult result) {
            if (!result.getStatus().isSuccess()) {
                showMessage("Cannot find DriveId. Are you authorized to view this file?");
                return;
            }
            DriveId driveId = result.getDriveId();
            DriveFile file = driveId.asDriveFile();
            new EditContentsAsyncTask(EditContentsActivity.this).execute(file);
        }
    };
    Drive.DriveApi.fetchDriveId(getGoogleApiClient(), EXISTING_FILE_ID)
          .setResultCallback(idCallback);
}
/**
 * An activity to illustrate how to delete contents of a Drive file.
*/
driveFile = Drive.DriveApi.getFile(mGoogleApiClient,
        DriveId.decodeFromString(driveIdStr));
// Call to delete file.
driveFile.delete(mGoogleApiClient).setResultCallback(deleteCallback);