2017-10-28 12 views
0

ファイルをzipファイルにバックアップし、GoogleドライブAndroid API(GDAA)を使用してGoogleドライブにアップロードしようとしています。アップロードのためにCompletionEventを受け取るべき部分まで、すべてうまくいっています。 これは私がこれまでに...GoogleドライブAndroid APIのOnCompletionEventをアップロードできません

が、私はこのようDriveContentsを作成したものです:私は私がアップロードしたいファイルのzipファイルを作成するために、入力/出力ストリームを使用

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

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

その後、私はGoogleドライブのAppFolder内のファイルこの方法(DriveContentsと作成ExecutionOptionsを使用して)作成します:

をそれから私は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を取得します。私はマニフェストや何かの許可を失っていますか?私はここで何を見落としていますか?

+0

logcatエラーがありますか? AppDataフォルダは調べにくい。ファイルがドライブのホストに伝播していることをどのように知っていますか? – Cheticamp

+0

エラーはまったくありません。 私は次のことができます: AppDataフォルダ内の「隠しデータを削除」(drive.google.com>設定>アプリケーションの管理)でコードを実行し、AppDataフォルダのサイズを確認しますそのサイズを私のデバイスの生成されたzipファイルと比較するか、または 2 - AppDataフォルダ内のファイルをプログラムで(デバイスに)ダウンロードし、そのzipファイルを見ます(後で行います)。 私は何かが分かりにくいと思った(私は初心者です)。 –

+0

それは私がチェックする方法です。この問題([MCVE](https://stackoverflow.com/help/mcve))を示す小さなアプリをまとめることができれば、私はもっと詳しく見ていきたいと思います。投稿したコードはOKです。 – Cheticamp

答えて

0

もう一度私はにプロジェクトを再構築し、デバイスを再起動し、console.developers.google.comでクレデンシャルを再作成して30分待ってから別のショットを与えることにしました。今回はそれが働いた(私は理由が分からなくても)。

他の誰かがこれを体験した場合に備えて、ここに残しておきます。もう一度、私のような初心者を助けるための@Cheticampのおかげです。

関連する問題