2

機能するためにネットワーク接続が必要な単純なアプリを開発しています。アプリの起動時に Wi-Fi 接続がない場合、1) wifi を有効にするか、2) アプリケーションを終了するかの 2 つのオプションを使用してモーダル ダイアログをユーザーに表示したいと考えています。

問題は、「アプリを閉じる」ボタンがクリックされた場合にアプリケーションを閉じるために呼び出すことができる Android メソッドが見つからないことです。

私がまだ見つけていない方法はありますか?または、このユースケース全体を処理するためのより良い方法はありますか?

4

4 に答える 4

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");

        }


    }
}

}

于 2013-08-30T06:27:47.610 に答える
0

あなたの問題はアプリケーションを閉じることだと理解しましたよね?試しましたfinish();か?

于 2014-04-05T15:16:30.813 に答える