ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

在Android应用程序中自动执行ContentResolver.setMasterSync是不好的做法还是粗鲁?

2019-07-13 15:27:01  阅读:372  来源: 互联网

标签:android android-service android-syncadapter


我在我的应用程序中广泛使用syncadaptor来实现其核心功能.我还使用了syncadaptor提供的定期刷新.因此,在手机上禁用“帐户和同步”,我的应用程序将毫无用处.使用ContentResolver.setMasterSyncAuto(true)来打开同步被认为是一种不好的做法或粗鲁.只是做一个ContentResolver.setIsSyncable没有帮助,因为如果主帐户和同步被禁用,那么定期同步不起作用.
处理此方案的常用方法是什么?

提前致谢,

-V-

解决方法:

我会称之为不好的做法.

有两个不同的同步启用标志,用于不同的功能.

无论帐户类型或内容类型如何,主同步都是所有同步的单一启用标志.此设置在“帐户”和“帐户”上为“自动同步”.同步页面和用户通常将其关闭以节省电池电量.一些用户可能(ab)使用它进入某种“请勿打扰”模式.以编程方式,通过ContentResolver.setMasterSyncAutomatically()检查和取消选中此项

其次,您的帐户/权限对具有启用标志.所以,说一个谷歌帐户.你点击谷歌帐户,然后你得到一个子页面…同步驱动器,同步谷歌播放音乐,同步联系人,同步Gmail等等.每个都是一个帐户(com.google)和一个权限(com. android.contacts),配对在一起.它们是可单独控制的,因此我可以拥有同步联系人而不是我的日历的Google帐户.此外,即使列表中的可用项目也可能有所不同 – 我可能有一个帐户安装了谷歌音乐而另一个没有 – 所以该子页面中的内容列表可能会有所不同,选中或取消选中的内容可能会有所不同.请注意,如果附加的权限是可同步的,则该帐户会显示绿色同步圈,但该帐户本身不能单独处理.以编程方式,通过ContentResolver.setSyncAutomatically()检查和取消选中此项,并通过ContentResolver.setIsSyncable()启用/禁用(灰显).如果没有配置,你会把它变灰.

您的应用程序完全有权为其自己的帐户/权限对打开和关闭同步(尽管您应该尊重用户的意愿.)在应用程序的同步设置页面上看起来像“启用同步”复选框,它反映了状态到/来自A& S子页面通过(获取/设置)SyncAutomatically()

是的,您的应用可以更改主同步标记 – 但是这样做,您真的需要考虑是否要越过用户的头来决定他们的手机如何工作.这可以帮助那些不知道如何操作手机的用户,并会严重惹恼用户.我会立即卸载一个未经我的许可更改了手机范围同步设置的应用.我个人最常做的就是在配置同步时向用户弹出一个对话框 – “已配置同步,但在”帐户和同步“页面中打开”自动同步“后才会执行.您是否愿意打开自动同步功能?“然后发出意图将他们带到A& S页面,如果他们说是的话就打开它.这有助于用户了解他们的手机是如何工作的,而不仅仅是改变背后的东西,使其变得更加神秘.

总的来说,未经用户同意,不得重新配置手机.

标签:android,android-service,android-syncadapter
来源: https://codeday.me/bug/20190713/1450752.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有