我想开发一个应用程序来禁用背景数据(Android 1.5中的新功能)和自动同步,然后启用GPRS / EDGE连接,反之亦然。
我想出了如何通过更改APN设置来启用/禁用GPRS / EDGE。 (奇怪的解决方案。然而; Android开发人员无法想象用户可能想要禁用GPRS / EDGE)但是,我找不到启用/禁用自动同步和后台数据的方法。
我调查了Android代码,据我所知,Sync操作是一个意图。所以,我想用putExtra达到意图并触发启用/禁用。但;我找不到正确的关键字。或许我完全错了。
解决这个问题的正确方法是什么?
答案 0 :(得分:4)
在我的HTC梦想中,有一个禁用自动同步的复选框。如果您愿意,我可以查找菜单arborescence,这样您就可以在Android源代码中找到回调函数。但我很确定无法完全禁用自动同步。取消选中自动同步会阻止定时执行同步,但如果有任何网络数据连接可用,则每次运行具有同步功能的应用时都会发生同步。
祝你好运。
编辑:
有两种方法可以获得您想要的信息。
首先,我认为您可以使用android-sources / packages / apps / Settings / src / com / android / settings / Utils.java中的代码创建一个活动,该活动将获取intent的所有键然后找到一个你想要的。
另一种方法是给制作切换设置应用程序(http://smartphoneandroid.com/2008/12/28/toggle-setting-perfect-app-for-android-phone.html)的人写一封漂亮的邮件,因为他显然找到了解决问题的方法。他的电子邮件地址写在Android市场的应用表中。我不会在这里写,但如果您无法访问真正的Android手机,我可以通过您的邮件地址发送给您。
答案 1 :(得分:2)
后台数据是secure setting,因此用户应用程序无法更改。但请记住,这只是一个设置 - 它没有强制执行。应用程序旨在阅读并尊重它,但我打赌有些人不这样做。
答案 2 :(得分:2)
禁用AutoSynch
ContentResolver.setMasterSyncAutomatically(false);
启用AutoSynch
ContentResolver.setMasterSyncAutomatically(true);
您需要的权限是
<uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS" />
答案 3 :(得分:1)
setMasterSyncAutomatically()应该这样做。检查:general-sync-settings-auto-sync-checkbox-programtically