この問題は、新しい Google Drive Android Api (GDAA) の開始以来、私を悩ませてきました。最初にここで説明しましたが、後のリリースでなくなることを願っていましたが、まだ残っています (2014/03/19 時点)。ユーザーがゴミ箱に移動した (「drive.google.com」の「削除」アクションを参照) ファイル/フォルダは、
Drive.DriveApi.query(_gac, query), and
DriveFolder.queryChildren(_gac, query)
としても
DriveFolder.listChildren(_gac)
使用されている場合でも、メソッド
Filters.eq(SearchableField.TRASHED, false)
クエリ修飾子、または結果にフィルタリング構造を使用する場合
for (Metadata md : result.getMetadataBuffer()) {
if ((md == null) || (!md.isDataValid()) || md.isTrashed()) continue;
dMDs.add(new DrvMD(md));
}
使用する
Drive.DriveApi.requestSync(_gac);
影響はありません。そして、削除からの経過時間は大きく異なります.私の最後のケースは12時間以上でした. そして、それは完全にランダムです。
さらに悪いことに、「drive.google.com」の EMPTY TRASH に頼ることさえできず、予測可能な結果が得られません。ファイルのステータスが 'isTrashed()' に変更される場合があり、結果リストから消える場合があります。
この問題をいじり続けていたので、次のスーパーハックに行き着きました。
find file with TRASH status equal FALSE
if (file found and is not trashed) {
try to write content
if ( write content fails)
create a new file
}
これでも役に立ちません。ファイルがごみ箱にある場合でも、ファイルは正常であると表示されます (そのステータスは、クエリとメタデータ テストによって二重にフィルター処理されます)。喜んで書き込むこともでき、ゴミ箱で検査すると変更されます。
ここでの結論は、マルチプラットフォームでのドライブの使用が信頼できなくなるため、修正の優先度を高くする必要があるということです。開発/デバッグプロセスで開発者がすぐに発見し、彼らを遠ざけます。