Android:要求用户启用wifi或退出应用程序

时间:2013-08-30 05:54:07

标签: android wifi modal-dialog quit

我正在开发一个需要网络连接才能运行的简单应用。当应用程序启动时,如果没有Wi-Fi连接,我想向用户显示一个模式对话框,有两个选项: 1)启用wifi或2)退出应用程序。

问题是,如果点击“关闭应用”按钮,我找不到可以调用关闭应用程序的android方法。

有没有找到我尚未发现的方法?或者是否有更好的方法来处理整个用例?

5 个答案:

答案 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)

这个链接可以帮助你:

1

2

祝你好运!

答案 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();吗?