有没有办法在我的Android应用程序中以编程方式检查是否启用了设置>帐户和同步>数据和同步下的特定设置?
有没有办法检查是否启用了常规同步设置?
谢谢!
如果它有助于知道"为什么",我正在推出自己的同步功能(不使用SyncAdapter).但是,如果可能的话,我希望在"数据和同步"下列出我的同步服务.现在我打算破解一个什么也不做的虚拟同步服务,让我的应用程序的同步服务查询是否启用了虚拟同步服务.这将告诉我是否要同步.
Mar*_*say 26
要知道是否启用了同步(并且没有像rajpara的回答那样激活),请使用以下命令:
AccountManager am = AccountManager.get(YourActivity.this);
Account account = am.getAccountsByType(YOUR_ACCOUNT_TYPE)[0];
boolean isYourAccountSyncEnabled = ContentResolver.getSyncAutomatically(account, DataProvider.AUTHORITY);
boolean isMasterSyncEnabled = ContentResolver.getMasterSyncAutomatically();
Run Code Online (Sandbox Code Playgroud)
"主"同步状态是全局同步开关,用户可以使用它来禁用手机上的所有同步.如果主同步已关闭,即使您的帐户同步状态表明已启用,您的帐户也不会同步.
正如@HiB所提到的,android.permission.READ_SYNC_SETTINGS
访问同步状态需要权限.android.permission.WRITE_SYNC_SETTINGS
需要启用/禁用它.
android.permission.GET_ACCOUNTS
正如MeetM所提到的那样,您还需要获取帐户.
raj*_*ara 11
AccountManager am = AccountManager.get(YourActivity.this);
Account account = am.getAccountsByType(Const.ACCOUNT_TYPE)[0];
if(ContentResolver.isSyncActive(account, DataProvider.AUTHORITY){
// sync is enable
}
Run Code Online (Sandbox Code Playgroud)
您还可以设置启用/本证的帮助编程方式禁用ContentResolver.setSyncAutomatically
和ContentResolver.setMasterSyncAutomatically
更新:
如果当前对挂起列表中的给定帐户或权限进行同步操作或正在进行处理,则isSyncActive将返回true.
归档时间: |
|
查看次数: |
8196 次 |
最近记录: |