通常情况下,您需要执行以下操作:
@Override
public void onResume(){
super.onResume();
if ( isOnline ){
}else{
new AlertDialog.Builder(YourActivity.this)
.setTitle("Connection failed")
.setMessage("This application requires network access. Please, enable " +
"mobile network or Wi-Fi.")
.setPositiveButton("Accept", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
YourActivity.this.startActivity(new Intent(Settings.ACTION_WIRELESS_SETTINGS));
}
})
.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
YourActivity.this.finish();
}
})
.show();
}
}
这个想法是要求用户去配置一个网络连接。然后,如果用户确实想要进行配置,你将调用 Settings.ACTION_WIRELESS_SETTINGS
意图。
此外,请注意 isOnline
变量,它是一个布尔值,告诉我们是否有网络连接。为了设置这个变量,您可以使用一个外部的简单类,如下所示:
public class CheckConnectivity {
public static boolean isOnline(Context context) {
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
if( cm == null )
return false;
NetworkInfo info = cm.getActiveNetworkInfo();
if( info == null )
return false;
return info.isConnectedOrConnecting();
}
}
另外,您需要将此权限添加到您的AndroidManifest.xml
文件中:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />