package com.example.broadcasttest;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.NetworkOnMainThreadException;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
private IntentFilter intentFilter;
private NetworkChangeReceiver networkChangeReceiver;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
intentFilter = new IntentFilter();
intentFilter.addAction("android.net.conn.CONNECTIVITY_CHANGE");
networkChangeReceiver = new NetworkChangeReceiver();
registerReceiver(networkChangeReceiver, intentFilter);
}
@Override
protected void onDestroy() {
super.onDestroy();
unregisterReceiver(networkChangeReceiver);
}
class NetworkChangeReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
ConnectivityManager connectionManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connectionManager.getActiveNetworkInfo();
if (networkInfo != null && networkInfo.isAvailable()) {
Toast.makeText(context, "network is available", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(context, "network is unavailable", Toast.LENGTH_SHORT).show();
}
}
}
}
AndroidManifest
<?xml version="1.0" encoding="utf-8"?>
package="com.example.broadcasttest">
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
报错
02-26 02:59:02.161 1590-1590/? I/art: Late-enabling -Xcheck:jni
02-26 02:59:02.162 1590-1590/? W/art: Unexpected CPU variant for X86 using defaults: x86
02-26 02:59:02.705 1590-1590/com.example.broadcasttest W/System: ClassLoader referenced unknown path: /data/app/com.example.broadcasttest-1/lib/x86
02-26 02:59:02.983 1590-1590/com.example.broadcasttest W/art: Before Android 4.1, method android.graphics.PorterDuffColorFilter android.support.graphics.drawable.VectorDrawableCompat.updateTintFilter(android.graphics.PorterDuffColorFilter, android.content.res.ColorStateList, android.graphics.PorterDuff$Mode) would have incorrectly overridden the package-private method in android.graphics.drawable.Drawable
[ 02-26 02:59:03.293 1590: 1590 D/ ]
HostConnection::get() New Host Connection established 0xe5cf49c0, tid 1590
[ 02-26 02:59:03.451 1590: 1590 W/ ]
Process pipe failed
02-26 02:59:03.573 1590-1605/com.example.broadcasttest D/libEGL: Emulator has host GPU support, qemu.gles is set to 1.
02-26 02:59:03.575 1590-1605/com.example.broadcasttest E/libEGL: load_driver(/system/lib/egl/libGLES_emulation.so): dlopen failed: library "/system/lib/egl/libGLES_emulation.so" not found
02-26 02:59:03.579 1590-1605/com.example.broadcasttest D/libEGL: loaded /system/lib/egl/libEGL_emulation.so
02-26 02:59:03.582 1590-1605/com.example.broadcasttest D/libEGL: loaded /system/lib/egl/libGLESv1_CM_emulation.so
02-26 02:59:03.613 1590-1605/com.example.broadcasttest D/libEGL: loaded /system/lib/egl/libGLESv2_emulation.so
02-26 02:59:03.818 1590-1605/com.example.broadcasttest I/OpenGLRenderer: Initialized EGL, version 1.4
02-26 02:59:03.818 1590-1605/com.example.broadcasttest D/OpenGLRenderer: Swap behavior 1
02-26 02:59:04.294 1590-1605/com.example.broadcasttest E/EGL_emulation: tid 1605: eglSurfaceAttrib(1174): error 0x3009 (EGL_BAD_MATCH)
02-26 02:59:04.294 1590-1605/com.example.broadcasttest W/OpenGLRenderer: Failed to set EGL_SWAP_BEHAVIOR on surface 0xcc924180, error=EGL_BAD_MATCH
02-26 02:59:04.309 1590-1590/com.example.broadcasttest I/Choreographer: Skipped 32 frames! The application may be doing too much work on its main thread.
02-26 02:59:05.625 1590-1605/com.example.broadcasttest E/EGL_emulation: tid 1605: eglSurfaceAttrib(1174): error 0x3009 (EGL_BAD_MATCH)
02-26 02:59:05.625 1590-1605/com.example.broadcasttest W/OpenGLRenderer: Failed to set EGL_SWAP_BEHAVIOR on surface 0xcc924400, error=EGL_BAD_MATCH