0

私のAndroidアプリケーションでは、メインのアクティビティでインターネット接続がこのように存在するかどうかを確認しています. インターネット(データ)接続に失敗すると、エラーが正しく表示されます。

しかし、アプリケーションを終了してインターネット接続をオンにしてアプリを実行すると、同じダイアログ (「インターネット接続なし」) が表示され、アプリを再インストールするかデバイスを再起動するとクリアされます。

マイコード

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
        setContentView(R.layout.activity_main);
        setFirsLaunchFlag();

        cd = new ConnectionDetector(getApplicationContext());

        // Check if Internet present
        if (!cd.isConnectingToInternet()) {
            // Internet Connection is not present
            TextView text = (TextView) findViewById(R.id.loads);
            text.setText("Internet connection error.");
            return;
        }

... 
}

私はアンドロイドに非常に慣れていません..私を助けてください

アップデート

boolean connected = false;

    @Override
    protected void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
        setContentView(R.layout.login_layput);

        ConnectivityManager connectivityManager =

                (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
        if(connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState() == NetworkInfo.State.CONNECTED || 
                connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState() == NetworkInfo.State.CONNECTED) {

            //we are connected to a network
            connected = true;
        }
        else
            connected = false;

        if(connected==false){
            TextView text = (TextView) findViewById(R.id.loads);
            text.setText("Internet connection error.");
            return;
        }
... 

}
4

2 に答える 2

1

このコードを使用してください。

ブール接続 = false;

接続マネージャー 接続マネージャー =

(ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);

if(connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState() == NetworkInfo.State.CONNECTED || 
        connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState() == NetworkInfo.State.CONNECTED) {

    //we are connected to a network
    connected = true;
}
else
    connected = false;

使用許可

「android.permission.ACCESS_NETWORK_STATE」

于 2013-05-10T17:06:44.093 に答える
1
public static boolean hasInternet(Activity a) 
{
        try {
            boolean hasConnectedWifi = false;
            boolean hasConnectedMobile = false;
            ConnectivityManager cm = (ConnectivityManager) a.getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo[] netInfo = cm.getAllNetworkInfo();
            for (NetworkInfo ni : netInfo) {
                if (ni.getTypeName().equalsIgnoreCase("wifi"))
                    if (ni.isConnected())
                        hasConnectedWifi = true;
                if (ni.getTypeName().equalsIgnoreCase("mobile"))
                    if (ni.isConnected())
                        hasConnectedMobile = true;
            }
            return hasConnectedWifi || hasConnectedMobile;
        }
        catch (Exception ex) {
        }
        return false;

}

このメソッドを使用して、インターネットに接続されているかどうかを確認します...このメソッドは、インターネットがある場合はブール値の true を返し、インターネットがない場合は false を返します

于 2013-05-10T18:38:49.683 に答える