Developer
Developer

Reputation: 6350

Cannot make a static reference to the non-static method getSystemService(String) from the type

I have this function which network connection

public boolean isNetworkConnected() {
    ConnectivityManager conManager = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
   NetworkInfo netInfo = conManager.getActiveNetworkInfo();

   if (netInfo == null) {
       // There are no active networks.
       return false;
   } else {
       return true;
   }
}

But when i a trying to make it static so that i can use it in every activity it is throwing:

Cannot make a static reference to the non-static method getSystemService(String) from the type

I don't want to create the object of the class every time .

Upvotes: 14

Views: 18598

Answers (3)

user2297461
user2297461

Reputation: 1

now we can use static function getContext() to get the context which inherit from Cocos2dxActivity.java

Upvotes: 0

s.d
s.d

Reputation: 29436

Add the non-static dependencies as parameters:

public static boolean isNetworkConnected(Context c) {
      ConnectivityManager conManager = (ConnectivityManager) c.getSystemService(Context.CONNECTIVITY_SERVICE);
      NetworkInfo netInfo = conManager.getActiveNetworkInfo();
      return ( netInfo != null && netInfo.isConnected() );
}

Upvotes: 35

Blackbelt
Blackbelt

Reputation: 157467

getSystemService is a non static method of the Context class, so in order to access it you need an object from the class Context.Typically you call it from inside an Activty where this is also an object of Context . In order to fix you could pass a Context to your method isNetworkConnected

Upvotes: 4

Related Questions