我需要知道两件事:
- 谷歌同步当前是否在设备上处于活动状态。
- 如果是,上次备份日期时间是什么时候。
到目前为止,我还没有找到掌握这些数据的方法,我们将不胜感激。我不介意它是否是仅适用于特定 API 版本的解决方案。
谢谢
我需要知道两件事:
到目前为止,我还没有找到掌握这些数据的方法,我们将不胜感激。我不介意它是否是仅适用于特定 API 版本的解决方案。
谢谢
您应该使用,按帐户类型( com.googleAccountManager
)过滤其结果,但最重要的是通过同步状态,使用ContentResolver。
查看随附的代码:
AccountManager am = AccountManager.get(this);
Account[] accounts = am.getAccountsByType("com.google");
boolean syncEnabled = ContentResolver.getSyncAutomatically(accounts[0], ContactsContract.AUTHORITY);
三种方法有助于了解同步是否已激活和启用:
ContentResolver.getMasterSyncAutomatically()
如果为整个设备启用同步,则返回 true。ContentResolver.getIsSyncable(yourAccount, TheProviderYouWant.AUTHORITY))
如果提供程序是可同步的,则返回值 > 0ContentResolver.getSyncAutomatically(yourAccount, TheProviderYouWant.AUTHORITY)
如果当前为此提供程序启用了同步,则返回 true。但也要小心检查getMasterSyncAutomatically()
,因为getSyncAutomatically()
即使getMasterSyncAutomatically()
返回 false也会返回 true