1

私には大きな問題があります。3GまたはWiFiが有効になっているかどうかを制御したいのです。これは私のコードです:

//controllo se è accesa la connessione 
        ConnectivityManager cm =
                (ConnectivityManager)this.getSystemService(Context.CONNECTIVITY_SERVICE);

        NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
        boolean isConnected = activeNetwork.isConnectedOrConnecting();
        //controllo se sono connesso
        if(isConnected==false){
            final AlertDialog.Builder builder=new AlertDialog.Builder(this);
        builder.setTitle("Attenzione!");
        builder.setMessage("L'applicazione senza la connessione ad internet non può funzionare. La preghiamo di attivarla.");
        builder.setIcon(android.R.drawable.ic_dialog_alert);
        builder.setPositiveButton("OK", new OnClickListener() {

            public void onClick(DialogInterface dialog, int which) {

            }
        });
        builder.show();}

それはオンクリエイトにあります。アクティビティを開くと、強制的に閉じられます。原因は次のとおりです。

原因: java.lang.NullPointerException

どこに問題があるのか​​ わかりません:(

4

4 に答える 4

2

ConnectivityManager の getActiveNetworkInfo() メソッドは、検出できる最初の接続ネットワーク インターフェイスを表す NetworkInfo インスタンスを返します。インターフェイスが接続されていない場合は null を返します。このメソッドが null を返すかどうかを確認するだけで、インターネット接続が利用可能かどうかを判断できます。

private boolean isNetworkAvailable() {
    ConnectivityManager connectivityManager 
          = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
    return activeNetworkInfo != null;
}

また、次のものが必要です。

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

あなたのアンドロイドマニフェストで。

于 2012-06-02T14:33:29.603 に答える
2

アクティブな接続がない場合は、 をgetActiveNetworkInfo()返しますnull

于 2012-06-02T14:25:24.197 に答える
2

デバイスがインターネットに接続されているかどうかを次のように確認できます。

public  boolean CheckConnection() {
    ConnectivityManager cm = (ConnectivityManager) MbridgeApp.getContext().getSystemService(
        Context.CONNECTIVITY_SERVICE);

    NetworkInfo wifiNetwork = cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
    if (wifiNetwork != null && wifiNetwork.isConnected()) {
      return true;
    }

    NetworkInfo mobileNetwork = cm.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
    if (mobileNetwork != null && mobileNetwork.isConnected()) {
      return true;
    }

    NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
    if (activeNetwork != null && activeNetwork.isConnected()) {
      return true;
    }
    return false;
  }
于 2012-06-02T14:27:50.200 に答える
1
ConnectivityManager cm = (ConnectivityManager)getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
boolean isConnected = false;
if(activeNetwork!=null)
    isConnected = true;
activeNetwork.isConnectedOrConnecting();
if(!isConnected){
   final AlertDialog.Builder builder=new AlertDialog.Builder(YourActivity.this);
   builder.setTitle("Attenzione!");
   builder.setMessage("L'applicazione senza la connessione ad internet non può funzionare. La preghiamo di attivarla.");
   builder.setIcon(android.R.drawable.ic_dialog_alert);
   builder.setPositiveButton("OK", new OnClickListener() {

   public void onClick(DialogInterface dialog, int which) {
   }
   });
   builder.show();
}
于 2012-06-02T14:36:15.310 に答える