根據Android的SDK文檔爲ConnectivityManager
,getBackgroundDataSetting()
被棄用的Android 4.x中,並getActiveNetworkInfo()
應改爲使用,以查看是否已停用背景資料:ICS中不推薦使用ConnectivityManager.getBackgroundDataSetting();如何使用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;
}
}
無論是當我關閉Sync時,或isConnect()
返回false。
是否有NetworkInfo
不同的方法,我要查詢,而不是看是否已停用背景資料?僅供參考我正在使用警報驅動的服務,而不使用SyncAdapter API,如果這有所幫助。
謝謝,
羅布
你的答案是完全無關的設問。 – 2015-06-03 18:09:43
@JuanAcevedo我不同意。 羅布似乎是假設背景數據應儘快同步被禁止時,禁止下(*與同步關閉,當我詢問我的服務範圍內的NetworkInfo對象,沒有什麼暗示後臺數據被禁用*)。我想這就是他看到意外行爲的原因。 從ICS和起,同步和背景數據是分開設置。可以禁用同步並啓用背景數據,反之亦然。 所以,在我看來這是絕對相關。 – 2015-06-10 18:14:26