4

我是 Android 新手,正在尝试编写一个SyncAdapter- 是否可以将其限制SyncAdapter为仅在网络为 WiFi(而不是 3G 等)时执行同步?

4

2 回答 2

5

你可以检查wifi

    ConnectivityManager cm = (ConnectivityManager) YourActivity.this.getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo info = cm.getActiveNetworkInfo();

    if(info.getType()==ConnectivityManager.TYPE_WIFI)
    {
        System.out.println("WiFi Connected");
    }
    else
    {
            System.out.println("WiFi not connected");
    }

并在清单中添加权限为

 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
于 2012-10-30T11:27:50.837 回答
2

上面的答案很好,但我会添加一个 HttpHead-Request(也可以使用 HTTPGet,但您会收到比需要的更多的数据),它正在调用例如 google.com,这样您就可以确定您确实连接到了互联网。上面发布的解决方案只是检查您是否有网络访问权限,但不保证您有网络访问权限。

于 2012-11-02T13:35:10.630 回答