ネットワークの状態を調べる
このへんか。
NetworkInfoを使って、通信接続が可能状態か知る « Tech Booster
パーミッション
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
ソース
すこし手を入れながら理解する。
public class MainSample extends Activity implements OnClickListener { ConnectivityManager cm; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); cm = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE); Button bt = (Button) findViewById(R.id.checkbutton); bt.setOnClickListener(this); } @Override public void onClick(View v) { NetworkInfo nInfo = cm.getActiveNetworkInfo(); if (nInfo != null && nInfo.isConnected()) { appearToast(nInfo.getTypeName() + " Network connected"); } else { appearToast("No Network Connection!"); } } private void function appearToast(String message) { Toast.makeText(this, message, Toast.LENGTH_LONG).show(); } }
NetworkInfo | Android Developers
コードを探す。
how to see if wifi is connected in android - Stack Overflow
android.net.wifi.WifiManager m = (WifiManager) getSystemService(WIFI_SERVICE); android.net.wifi.SupplicantState s = m.getConnectionInfo().getSupplicantState(); NetworkInfo.DetailedState state = WifiInfo.getDetailedStateOf(s); if( state != NetworkInfo.DetailedState.CONNECTED ){ return false; }
ConnectivityManager connManager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE); NetworkInfo mWifi = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI); if (mWifi.isConnected()) { // Do whatever }
Wi-Fiの状態は細かく取れる。
SupplicantState supState; wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE); WifiInfo wifiInfo = wifiManager.getConnectionInfo(); supState = wifiInfo.getSupplicantState();
AUTHENTICATING | Network link established, performing authentication. | |
BLOCKED | Access to this network is blocked. | |
CONNECTED | IP traffic should be available. | |
CONNECTING | Currently setting up data connection. | |
DISCONNECTED | IP traffic not available. | |
DISCONNECTING | Currently tearing down data connection. | |
FAILED | Attempt to connect failed. | |
IDLE | Ready to start data connection setup. | |
OBTAINING_IPADDR | Awaiting response from DHCP server in order to assign IP address information. | |
SCANNING | Searching for an available access point. | |
SUSPENDED | IP traffic is suspended |
「Androidが通信可能かどうか」を取りたいので、
cm = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
NetworkInfo nInfo = cm.getActiveNetworkInfo(); if (nInfo != null && nInfo.isConnected()) { appearToast(nInfo.getTypeName() + " Network connected"); } else {
結局ここらか。