【发布时间】:2014-11-03 07:57:32
【问题描述】:
我正在设计一款游戏应用,它要求用户使用良好的 wifi 连接。而且我还需要两个用户都知道另一个用户是否在 wifi 上。此游戏应用开发将使用 Android 平台。
【问题讨论】:
标签: android android-wifi server
我正在设计一款游戏应用,它要求用户使用良好的 wifi 连接。而且我还需要两个用户都知道另一个用户是否在 wifi 上。此游戏应用开发将使用 Android 平台。
【问题讨论】:
标签: android android-wifi server
只需创建以下检查互联网连接的类:
public class ConnectionStatus {
private Context _context;
public ConnectionStatus(Context context) {
this._context = context;
}
public boolean isConnectionAvailable() {
ConnectivityManager connectivity = (ConnectivityManager) _context
.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivity != null) {
NetworkInfo[] info = connectivity.getAllNetworkInfo();
if (info != null)
for (int i = 0; i < info.length; i++)
if (info[i].getState() == NetworkInfo.State.CONNECTED) {
return true;
}
}
return false;
}
}
这个类只包含一个返回连接状态的布尔值的方法。因此简单来说,如果该方法找到了有效的互联网连接,则返回值为true,如果没有找到有效的连接,则返回false。
MainActivity 中的以下方法然后调用前面描述的方法的结果,并提示用户采取相应的行动:
public void addListenerOnWifiButton() {
Button btnWifi = (Button)findViewById(R.id.btnWifi);
iia = new ConnectionStatus(getApplicationContext());
isConnected = iia.isConnectionAvailable();
if (!isConnected) {
btnWifi.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(Settings.ACTION_WIFI_SETTINGS));
Toast.makeText(getBaseContext(), "Please connect to a hotspot",
Toast.LENGTH_SHORT).show();
}
});
}
else {
btnWifi.setVisibility(4);
warning.setText("This app may use your mobile data to update events and get their details.");
}
}
在上面的代码中,如果结果为假,(因此没有互联网连接,用户将被带到Android wi-fi面板,提示他连接到wi-fi热点。
【讨论】: