Vis*_*hal 3 android android-service android-syncadapter
我在我的应用程序中广泛使用syncadaptor来实现其核心功能.我还使用了syncadaptor提供的定期刷新.因此,在手机上禁用"帐户和同步",我的应用程序将毫无用处.使用ContentResolver.setMasterSyncAuto(true)来打开同步被认为是一种不好的做法或粗鲁.只是做一个ContentResolver.setIsSyncable没有帮助,因为如果主帐户和同步被禁用,那么定期同步不起作用.处理此方案的常用方法是什么?
提前致谢,
-V-
jcw*_*ger 15
我会称之为不好的做法.
有两个不同的同步启用标志,用于不同的功能.
无论帐户类型或内容类型如何,主同步都是所有同步的单一启用标志.此设置是"帐户和同步"页面上的"自动同步",用户通常会将其关闭以节省电池电量.一些用户可能(ab)使用它进入某种"请勿打扰"模式.以编程方式,通过检查和取消选中ContentResolver.setMasterSyncAutomatically()
其次,您的帐户/权限对具有启用标志.所以,说一个谷歌帐户.你点击谷歌帐户,然后你得到一个子页面...同步驱动器,同步谷歌播放音乐,同步联系人,同步Gmail等等.每个都是一个帐户(com.google)和一个权威(com. android.contacts),配对在一起.它们是可单独控制的,因此我可以拥有同步联系人而不是我的日历的Google帐户.此外,即使列表中的可用项目也可能有所不同 - 我可能有一个帐户安装了谷歌音乐而另一个没有 - 所以该子页面中的内容列表可能会有所不同,选中或取消选中的内容可能会有所不同.请注意,帐户显示绿色圆圈同步,如果有一个权威连接是可同步,但户口本身并不是孤立sycable.以编程方式,通过检查和取消选中ContentResolver.setSyncAutomatically(),并启用/禁用(灰显)ContentResolver.setIsSyncable().如果没有配置,你会把它变灰.
您的应用程序完全有权为其自己的帐户/权限对打开和关闭同步(尽管您应该尊重用户的意愿.)在应用程序的同步设置页面上看起来像"启用同步"复选框,它反映了状态到/来自A&S子页面通过 (get/set)SyncAutomatically()
是的,您的应用可以更改主同步标记 - 但是这样做,您真的需要考虑是否要越过用户的头来决定他们的手机如何工作.这可以帮助那些不知道如何操作手机的用户,并会严重惹恼用户.我会立即卸载一个未经我的许可更改了手机范围同步设置的应用.我个人最常做的就是在配置同步时向用户弹出一个对话框 - "已配置同步,但在"帐户和同步"页面中打开"自动同步"后才会执行.是否要转向自动同步?" 然后发出意图,将他们带到A&S页面,如果他们说是的话就打开它.这有助于用户了解他们的手机是如何工作的,而不仅仅是改变背后的东西,使其变得更加神秘.
总的来说,未经用户同意,切勿重新配置手机.
| 归档时间: | 
 | 
| 查看次数: | 1362 次 | 
| 最近记录: |