我正在开发一个需要网络连接才能运行的简单应用。当应用程序启动时,如果没有Wi-Fi连接,我想向用户显示一个模式对话框,有两个选项: 1)启用wifi或2)退出应用程序。
问题是,如果点击“关闭应用”按钮,我找不到可以调用关闭应用程序的android方法。
有没有找到我尚未发现的方法?或者是否有更好的方法来处理整个用例?
答案 0 :(得分:3)
要检查 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);
试试..
答案 1 :(得分:1)
我有一个类似的代码来检查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");
}
}
}
}
答案 2 :(得分:0)
答案 3 :(得分:0)
你应该考虑退出意见,
这是关于退出应用SO Answer
的一个很好的答案你可以说没有WiFi。
如果您只是像这样制作 AlerDialog :
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Hint"
.setMessage("No WiFi!"
.setPositiveButton("OK", null).show();
或 Toast 喜欢:
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;
}
答案 4 :(得分:0)
我明白你的问题正在关闭应用程序,对吧?你试过finish();
吗?