Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/201.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何以编程方式禁用Android中Google帐户的邮件同步?_Android_Android Contentprovider_Android Syncadapter - Fatal编程技术网

如何以编程方式禁用Android中Google帐户的邮件同步?

如何以编程方式禁用Android中Google帐户的邮件同步?,android,android-contentprovider,android-syncadapter,Android,Android Contentprovider,Android Syncadapter,我正在使用AccountPicker在我的设备中添加Google帐户。添加后,我想通过代码禁用同步。我可以使用以下代码停止该帐户的联系人同步 ContentResolver.setSyncAutomatically(account, ContactsContract.AUTHORITY, false); 现在我想禁用邮件同步也。我应该使用什么权限通过代码禁用邮件同步?或者有没有办法禁用完全帐户同步?编辑: 电子邮件不是SDK的一部分。同步在内部通过邮件应用程序进行控制。电子邮件提供程序本身不公

我正在使用AccountPicker在我的设备中添加Google帐户。添加后,我想通过代码禁用同步。我可以使用以下代码停止该帐户的联系人同步

ContentResolver.setSyncAutomatically(account, ContactsContract.AUTHORITY, false);
现在我想禁用邮件同步也。我应该使用什么权限通过代码禁用邮件同步?或者有没有办法禁用完全帐户同步?

编辑:

电子邮件不是SDK的一部分。同步在内部通过邮件应用程序进行控制。电子邮件提供程序本身不公开,无法从包外部控制其设置


我查看了AOSP和其中的exchange应用程序,它们使用电子邮件权限以相同的方式控制同步。exchange的权限是“com.android.email.provider”

我可以通过从ContentResolver获取syncadapter类型并使用其权限禁用帐户同步来解决此问题

例如:

SyncAdapterType[] syncAdapters = ContentResolver.getSyncAdapterTypes();

for(SyncAdapterType syncAdapterType : syncAdapters) {
    ContentResolver.setSyncAutomatically(account, syncAdapterType.authority, false);
}
它禁用帐户的同步。这是正确的方法吗?

setMasterSyncAutomatically()将禁用所有帐户的同步。我想禁用特定帐户的同步。我在Android中找不到电子邮件权限。