无法接收Google Drive Android API的OnCompletionEvent以进行上传

时间:2017-10-28 00:17:51

标签: android google-drive-api

我正在尝试将一些文件备份到zip文件中,然后使用Google Drive Android API(GDAA)将其上传到Google云端硬盘。一切正常,直到我应该收到CompletionEvent上传的部分。 这就是我到目前为止......

我以这种方式创建了DriveContents:

Drive.DriveApi.newDriveContents(mGAPIClient)
                .setResultCallback...

我使用输入/输出流来创建我要上传的文件的zip文件。然后我创建一个ExecutionOptions对象,要求通知上传完成情况:

ExecutionOptions executionOptions = new ExecutionOptions.Builder()
                                        .setNotifyOnCompletion(true)
                                        .build();

然后我以这种方式在Google云端硬盘的AppFolder中创建文件(使用DriveContents和创建的ExecutionOptions):

Drive.DriveApi.getAppFolder(mGAPIClient).createFile(mGAPIClient, metadataChangeSet, mDContents, executionOptions)
                                        .setResultCallback...

这是我的DriveEventService子类,它应该负责接收CompletionEvent:

public class MeuDriveEventService extends DriveEventService {

    @Override
    public void onCompletion(CompletionEvent completionEvent) {
        super.onCompletion(completionEvent);
        Log.d("GAPI", "status do com.example.android.QsApp.MeuDriveEventService: " + completionEvent.getStatus());
        completionEvent.dismiss();
    }
}

...并在我的清单中声明:

<service
    android:name="com.example.android.QsApp.MeuDriveEventService"
    android:exported="true">
    <intent-filter>
        <action android:name="com.google.android.gms.drive.events.HANDLE_EVENT"/>
    </intent-filter>
</service>

zip文件 正在本地创建成功上传(我多次检查过),我只是没有得到CompletionEvent。我是否错过了我的清单或其他内容的许可?我在这里俯瞰什么?

1 个答案:

答案 0 :(得分:0)

我再一次决定重建项目,重新启动设备,在console.developers.google.com上重新创建凭据,等待30分钟并再试一次。这次它奏效了(尽管我不知道为什么)。

我会留下这个,以防其他人体验到这一点。再次感谢@Cheticamp帮助像我这样的初学者。