如何删除此错误:对于NetworkChangeReceiver类型,isNetworkAvailable(Context)是未定义的? 我是android的新手,所以我在处理这个错误时遇到了问题,有人可以帮我解决这个错误吗? 我的代码如下:
public class NetworkChangeReceiver extends BroadcastReceiver {
String status ;
HttpURLConnection urlc;
@Override
public void onReceive(final Context context, final Intent intent) {
String status = NetworkUtil.getConnectivityStatusString(context);
if (status == "Wifi enabled" || status =="Mobile data enabled")
{
sendonnetworkconnection(context);
datasendonnetworkconnection(context);
}
Toast.makeText(context, status, Toast.LENGTH_SHORT).show();
}
public void sendonnetworkconnection(final Context context) {
//do something
}
public void datasendonnetworkconnection(final Context context) {
//do something
}
public void retrieveValuesFromListMethod1(List AssetId,Context context)
{
Iterator itr = AssetId.iterator();
while(itr.hasNext())
{
//do something
}
}
public static boolean hasActiveInternetConnection(Context context) {
String LOG_TAG;
if (isNetworkAvailable(context)) {
try {
HttpURLConnection urlc = (HttpURLConnection) (new URL("http://url").openConnection());
urlc.setRequestProperty("User-Agent", "Test");
urlc.setRequestProperty("Connection", "close");
urlc.setConnectTimeout(1500);
urlc.connect();
return (urlc.getResponseCode() == 200);
} catch (IOException e) {
Log.e(LOG_TAG, "Error checking internet connection", e);
}
} else {
Log.d(LOG_TAG, "No network available!");
}
return false;
}
public void retrieveValuesFromListMethod2(List Asset,Context context)
{
Iterator itr = Asset.iterator();
while(itr.hasNext())
{
//do something
]
Toast.makeText(context, uniqueid, Toast.LENGTH_SHORT).show();
}
}
}
答案 0 :(得分:2)
我认为您要么缺少要导入,要么没有这种方法。理想情况下,它可以是这样的,
public static boolean isNetworkAvailable(Context c) {
NetworkInfo netInfo = null;
try {
ConnectivityManager cm = (ConnectivityManager) c
.getSystemService(Context.CONNECTIVITY_SERVICE);
netInfo = cm.getActiveNetworkInfo();
} catch (SecurityException e) {
e.printStackTrace();
}
return netInfo != null && netInfo.isConnectedOrConnecting();
}
答案 1 :(得分:1)
试试这个
改变这个..
if (status == "Wifi enabled" || status =="Mobile data enabled")
{
sendonnetworkconnection(context);
datasendonnetworkconnection(context);
}
到
if (status.equals("Wifi enabled") || status.equals("Mobile data enabled"))
{
sendonnetworkconnection(context);
datasendonnetworkconnection(context);
}
==
总是只比较两个引用。 String
你应该使用.equals(“”)