getActiveNetworkInfo()
Android 4.0 以降のdeprecated の代わりに を使用するとConnectivityManager.getBackgroundDataSetting()
、変更 (制限) されたときにバックグラウンド データの設定が反映されません。他の選択肢はありますか?
コード スニペットは次のとおりです。
ConnectivityManager connectivityManager;
connectivityManager = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
if(connectivityManager != null) {
NetworkInfo info = connectivityManager.getActiveNetworkInfo();
if (info.isConnected() == true) {
System.out.println("running");
Toast.makeText(context, "Background settings enabled", Toast.LENGTH_SHORT).show();
} else {
System.out.println("active network info null");
System.out.println("enable background services");
Toast.makeText(context, "background settings disabled", Toast.LENGTH_SHORT).show();
}
} else {
LogUtil.w(getClass(), "Application does not have ACCESS_NETWORK_STATE Permission");
}
注: " if(connectivityManager.getBackgroundDataSetting()
" は 2.3.3 で機能しますが、Android 4.0 以降では " " に置き換えるとif (info.isConnected() == true)
、バックグラウンド データ設定が制限されている場合でも常に true が返されます。