3
私は、基本的にはサービス開始時にネットワークとやり取りする必要があるときに、良いサマリア人になろうとするアプリケーションを持っています。このメソッドがfalseを返した場合、私は、ユーザーが電話や3G上にあるので、私は接続されていないことを知っているネットワーク接続がいつ返ってくるかを知る
hasConnectivity方法
private boolean hasConnectivity() {
NetworkInfo info = mConnectivity.getActiveNetworkInfo();
boolean connected = false;
int netType = -1;
int netSubtype = -1;
if (info == null) {
Log.w(sTag, "network info is null");
notifyUser(MyIntent.ACTION_VIEW_ALL, "There is no network connectivity.", false);
} else if (!mConnectivity.getBackgroundDataSetting()) {
Log.w(sTag, "background data setting is not enabled");
notifyUser(MyIntent.ACTION_VIEW_ALL, "background data setting is disabled", false);
} else {
netType = info.getType();
netSubtype = info.getSubtype();
if (netType == ConnectivityManager.TYPE_WIFI) {
connected = info.isConnected();
} else if (netType == ConnectivityManager.TYPE_MOBILE
&& netSubtype == TelephonyManager.NETWORK_TYPE_UMTS
&& !mTelephonyManager.isNetworkRoaming()
) {
connected = info.isConnected();
} else if (info.isRoaming()) {
notifyUser(MyIntent.ACTION_VIEW_ALL, "Currently Roaming skipping check.", false);
} else if (info.isAvailable()) {
connected = info.isConnected();
} else {
notifyUser(MyIntent.ACTION_VIEW_ALL, "..There is no network connectivity.", false);
}
}
return connected;
}
:私は、デバイスが接続性を持っているかどうかをチェックしていますwifiが利用できない
ネットワーク統計情報をタイマーで定期的に取得して接続が利用可能になったときを知る最も良い方法は何ですか?
接続の変更を通知する予定のブロードキャストレシーバーで観察できるインテントアクションはありますか?
お手数をおかけしていただきありがとうございます。私は次の作業の手がかりを探していきます。
ドキュメントをブラウズしていたときに、ConnectivityManager.CONNECTIVITY_ACTIONが見つかりませんでした。まさに私が望んでいたものだった。 – Double
私の検索と呪いの時間を知っておけば、自分自身以外の誰かに助けになりました。 – iarwain01