我正在设计一款游戏应用,它要求用户保持良好的WiFi连接。而且我还需要两个用户知道其他用户是否在wifi上。 Android平台将用于此游戏应用程序开发。
答案 0 :(得分:0)
只需创建以下检查互联网连接的类:
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;
}
}
该类只包含一个返回连接状态的布尔值的方法。因此,简单来说,如果方法找到与Internet的有效连接,则返回值为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.");
}
}
在上面的代码中,如果结果为false,(因此没有互联网连接,用户将被带到Android wi-fi面板,在那里他被提示连接到Wi-Fi热点。