Android 使用多个客户端将文件同步到Google Drive AppFolder
我正在我的应用程序中编写一个功能,将所有用户的收藏夹同步到Google Drive。此功能的全部要点是该用户的所有设备都是同步的 有些事情很值得知道:Android 使用多个客户端将文件同步到Google Drive AppFolder,android,google-drive-api,synchronization,Android,Google Drive Api,Synchronization,我正在我的应用程序中编写一个功能,将所有用户的收藏夹同步到Google Drive。此功能的全部要点是该用户的所有设备都是同步的 有些事情很值得知道: 应用程序在启动时从Google Drive中提取所有收藏夹,并将它们与本地收藏夹进行比较。如果Google Drive文件夹中有一个收藏夹不在本地存储中,则该收藏夹将添加到本地存储中,反之亦然 该应用程序使用谷歌驱动API 上面第一点的问题是比较云存储和本地存储的方式。当用户删除收藏夹,并且连接不好时,该收藏夹不会在Google Drive上
- 应用程序在启动时从Google Drive中提取所有收藏夹,并将它们与本地收藏夹进行比较。如果Google Drive文件夹中有一个收藏夹不在本地存储中,则该收藏夹将添加到本地存储中,反之亦然李>
- 该应用程序使用谷歌驱动API
ChangeEvents
。例如,当其关心的文件或文件夹发生更改时,应用程序可能会显示通知,即使该更改是在应用程序未运行时发生的
以下示例代码显示了将更改订阅添加到文件时可能实现的逻辑:
DriveFile file = Drive.DriveApi.getFile(mGoogleApiClient,
mSelectedFileId);
file.addChangeSubscription(mGoogleApiClient);
处理更改订阅事件
要处理更改订阅事件,必须创建一个类,该类扩展DriveEventService
并重写onChange
方法。这是对changeent
进行特定于应用程序的处理的地方
public class MyDriveEventService extends DriveEventService {
@Override
public void onChange(ChangeEvent event) {
Log.d(TAG, event.toString());
// Application-specific handling of event.
}
}
将其添加到AndroidManifest.xml文件中
<application ...>
...
<service android:name=".MyDriveEventService" android:exported="true">
<intent-filter>
<action android:name="com.google.android.gms.drive.events.HANDLE_EVENT"/>
</intent-filter>
</service>
</application>
(驱动器RESTAPI):
驱动器API提供推送通知,让您可以监视资源的更改。您可以使用此功能提高应用程序的性能。它允许您消除轮询资源以确定资源是否已更改所涉及的额外网络和计算成本。每当监视的资源更改时,驱动器API都会notif这是你的申请
你可以阅读博客了解更多信息
希望这有帮助!这是我想要使用的实现!谢谢,但是您有跟上所有更改的想法吗?