3

バックグラウンド データ (Android 1.5 の新機能) と自動同期を無効にしてから GPRS/EDGE 接続を有効にするアプリケーションを開発したいと考えています。

APN設定を変更してGPRS / EDGEを有効/無効にする方法を見つけました。(奇妙な解決策。しかし、Android 開発者は、ユーザーが GPRS/EDGE を無効にしたいと思うかもしれないとは考えられませんでした) しかし、自動同期とバックグラウンド データを有効/無効にする方法が見つかりませんでした。

Android コードを調査したところ、同期操作はインテントであることがわかりました。そのため、putExtra でインテントに到達し、有効化/無効化をトリガーしたいと考えました。しかし; 正しいキーワードが見つかりませんでした。あるいは、私が完全に間違っていたのかもしれません。

これを解決する正しい方法は何ですか?

4

4 に答える 4

4

私の HTC の夢には、自動同期を無効にするチェックボックスがあります。Android ソース コードでコールバック関数が何であるかを見つけることができるように、必要に応じてメニューの樹木を探すことができます。しかし、自動同期を完全に無効にすることはできないと確信しています。自動同期のチェックを外すと、同期は定期的に実行されなくなりますが、ネットワーク データ接続が利用可能な場合、同期機能を備えたアプリを実行するたびに同期が実行されます。

とにかく頑張ってください。

編集 :

必要な情報を取得するには 2 つの方法があります。

まず、android-sources/packages/apps/Settings/src/com/android/settings/Utils.java のコードを使用して、インテントのすべてのキーを登録し、必要なキーを見つけるアクティビティを作成できると思います.

もう 1 つの方法は、Toggle Setting アプリ ( http://smartphoneandroid.com/2008/12/28/toggle-setting-perfect-app-for-android-phone.html )を作成した人に素敵なメールを書くことです。彼は明らかにあなたの問題の解決策を見つけました。彼のメール アドレスは、android マーケットのアプリ シートに記載されています。ここには書きませんが、実際の Android フォンにアクセスできない場合は、あなたのメールアドレスに郵送できます。

于 2009-05-10T10:38:55.450 に答える
2

バックグラウンド データは安全な設定であるため、ユーザー アプリケーションで変更することはできません。ただし、これは単なる設定であり、強制されるものではないことに注意してください。アプリはそれを読んで尊重することを意図していますが、そうでないアプリもあるに違いありません。

于 2009-05-10T13:01:57.153 に答える
2

AutoSync を無効にするには

ContentResolver.setMasterSyncAutomatically(false);

AutoSync を有効にするには

ContentResolver.setMasterSyncAutomatically(true);

必要な許可は

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

ContentResolverのsetMasterSyncAutomatically()がそれを行う必要があります。チェック:general-sync-settings-auto-sync-checkbox-programtically

于 2012-01-12T17:01:54.110 に答える