我正在开发一个需要网络连接才能运行的简单应用程序。当应用程序启动时,如果没有 wi-fi 连接,我想向用户显示一个模式对话框,有两个选项:1)启用 wifi 或 2)退出应用程序。
问题是如果单击“关闭应用程序”按钮,我找不到可以调用来关闭应用程序的 android 方法。
有没有我还没找到的方法?还是有更好的方法来处理整个用例?
我正在开发一个需要网络连接才能运行的简单应用程序。当应用程序启动时,如果没有 wi-fi 连接,我想向用户显示一个模式对话框,有两个选项:1)启用 wifi 或 2)退出应用程序。
问题是如果单击“关闭应用程序”按钮,我找不到可以调用来关闭应用程序的 android 方法。
有没有我还没找到的方法?还是有更好的方法来处理整个用例?
要检查Internet 连接,请使用以下代码:
private boolean haveNetworkConnection() {
final ConnectivityManager conMgr = (ConnectivityManager) getSystemService (Context.CONNECTIVITY_SERVICE);
if (conMgr.getActiveNetworkInfo() != null && conMgr.getActiveNetworkInfo().isAvailable() && conMgr.getActiveNetworkInfo().isConnected()) {
return true;
} else {
System.out.println("Internet Connection Not Present");
return false;
}
}
并在按钮上退出应用程序单击使用此代码:
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
startActivity(intent);
试试看..
我有一个用于检查 wifi 速度的类似代码。请看看这是否有帮助:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TextView text= (TextView) findViewById(R.id.TV);
ConnectivityManager connectivityManager =(ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo info = connectivityManager.getActiveNetworkInfo();
if (info == null ||
!connectivityManager.getBackgroundDataSetting()) {
// No Network detected
findViewById(R.id.quit).setVisibility(View.VISIBLE);
findViewById(R.id.quit).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
finish();
}
});
//return;
}else {
int netType = info.getType();
int netSubtype = info.getSubtype();
if (netType == ConnectivityManager.TYPE_WIFI) {
//WIFI DETECTED
WifiManager wifiManager = (WifiManager)this.getSystemService(Context.WIFI_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
int linkSpeed = wifiInfo.getLinkSpeed(); //measured using WifiInfo.LINK_SPEED_UNITS
text.setText("Connection is wifi and the speed is "+Integer.toString(linkSpeed));
} else if (netType == ConnectivityManager.TYPE_MOBILE
&& netSubtype >2) {
text.setText("connection is 3g");
} else {
text.setText("connection is 2g");
}
}
}
}
我了解到您的问题是关闭应用程序,对吗?你试过了finish();
吗?
你应该考虑退出意见,
这是一个关于退出应用程序SO 答案的好答案
您可以说没有 WiFi。
如果你只是像这样制作一个AlerDialog:
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Hint"
.setMessage("No WiFi!"
.setPositiveButton("OK", null).show();
或者像这样的吐司:
Toast.makeText(yourActivity.this, "No WiFi!", Toast.LENGTH_LONG).show();
如果要检查连接,可以使用以下代码段:
public boolean isOnline() {
// check if an internet connection is present
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = cm.getActiveNetworkInfo();
if (!(netInfo != null && cm.getActiveNetworkInfo().isAvailable() && cm
.getActiveNetworkInfo().isConnected())) {
return false;
}
return true;
}