3

我想开发一个应用程序来禁用后台数据(Android 1.5 中的新功能)和自动同步,然后启用 GPRS/EDGE 连接,反之亦然。

我想出了如何通过更改 APN 设置来启用/禁用 GPRS/EDGE。(奇怪的解决方案。然而;Android 开发人员不会认为用户可能想要禁用 GPRS/EDGE)但是,我找不到启用/禁用自动同步和后台数据的方法。

我调查了 Android 代码,据我了解,同步操作是一个意图。所以,我想用 putExtra 达到意图并触发启用/禁用。但; 我找不到正确的关键字。或者也许我完全错了。

解决这个问题的正确方法是什么?

4

4 回答 4

4

在我的 HTC 梦想中,有一个复选框可以禁用自动同步。如果您愿意,我可以查找菜单树状结构,以便您可以在 Android 源代码中找到回调函数。但我很确定不能完全禁用自动同步。取消选中自动同步将阻止定时执行同步,但如果任何网络数据连接可用,则每次运行具有同步功能的应用程序时都会发生同步。

总之祝你好运。

编辑 :

有两种方法可以获取您想要的信息。

首先,我认为您可以使用 android-sources/packages/apps/Settings/src/com/android/settings/Utils.java 中的代码来创建一个活动,该活动将征用意图的所有键,然后找到您想要的.

另一种方法是给制作 Toggle Setting 应用程序 ( http://smartphoneandroid.com/2008/12/28/toggle-setting-perfect-app-for-android-phone.html ) 的人写一封不错的邮件,因为他显然找到了解决您问题的方法。他的电子邮件地址写在 android 市场上的应用程序表中。我不会在这里写,但如果你没有真正的安卓手机,我可以通过你的邮件地址邮寄给你。

于 2009-05-10T10:38:55.450 回答
2

背景数据是一种安全设置,因此不能由用户应用程序更改。但请记住,这只是一个设置 - 它不是强制执行的。应用程序旨在阅读并尊重它,但我敢打赌有些不会。

于 2009-05-10T13:01:57.153 回答
2

禁用自动同步

ContentResolver.setMasterSyncAutomatically(false);

启用自动同步

ContentResolver.setMasterSyncAutomatically(true);

您需要的权限是

<uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS" />
于 2014-07-24T14:26:20.573 回答
1

ContentResolver 上的 setMasterSyncAutomatically() 应该这样做。检查:通用同步设置自动同步复选框以编程方式

于 2012-01-12T17:01:54.110 回答