の Android SDK ドキュメントによると、ConnectivityManager
はgetBackgroundDataSetting()
Android 4.x で廃止され、getActiveNetworkInfo()
バックグラウンド データが無効になっているかどうかを確認するために代わりに使用する必要があります。
しかし、同期をオフにしNetworkInfo
て、サービス内のオブジェクトを照会すると、バックグラウンド データが無効になっていることを意味するものは何もありません。
ConnectivityManager connMgr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
// getBackgroundDataSetting always returns true on Android 4.x
if (connMgr != null && !connMgr.getBackgroundDataSetting()) {
Log.i(WootsUp.TAG, "background data off");
return;
}
if (connMgr != null) {
NetworkInfo netInfo = connMgr.getActiveNetworkInfo();
if (netInfo == null || netInfo.isAvailable() == false || netInfo.isConnected() == false) {
Log.i(WootsUp.TAG, "no active network");
return;
}
}
同期をオフにすると、falseisAvailable()
も返されません。isConnect()
NetworkInfo
バックグラウンドデータが無効になっているかどうかを確認するために、代わりにクエリを実行する必要がある別の方法はありますか? 参考までに、私はアラーム駆動型のサービスを使用しており、SyncAdapter API を使用していません。
ありがとう、
ロブ