安卓监听网络连接可以使用ConnectivityManager类来实现。下面是一个简单的示例代码:
首先,在AndroidManifest.xml文件中添加以下权限:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
然后,在你的Activity或Fragment中,你可以使用以下代码来监听网络连接变化:
private ConnectivityManager.NetworkCallback networkCallback;
...
ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
networkCallback = new ConnectivityManager.NetworkCallback() {
@Override
public void onAvailable(Network network) {
// 当网络连接可用时调用
}
@Override
public void onLost(Network network) {
// 当网络连接丢失时调用
}
@Override
public void onUnavailable() {
// 当网络连接不可用时调用
}
};
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
connectivityManager.registerDefaultNetworkCallback(networkCallback);
} else {
NetworkRequest.Builder builder = new NetworkRequest.Builder();
connectivityManager.registerNetworkCallback(builder.build(), networkCallback);
}
...
@Override
protected void onDestroy() {
super.onDestroy();
connectivityManager.unregisterNetworkCallback(networkCallback);
}
这样,当网络连接状态发生变化时,会触发对应的回调方法。
注意,以上代码需要在Android 5.0以上的版本中才能运行。
安卓监听网络连接可以使用 Android 提供的 NetworkInfo 相关类进行实现。下面是一个简单的代码示例:
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.util.Log;
public class NetworkStateReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
ConnectivityManager connMgr = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connMgr.getActiveNetworkInfo();
if (networkInfo != null && networkInfo.isConnected()) {
Log.d("NetworkStateReceiver", "网络已连接");
// 在此处执行相应的操作
} else {
Log.d("NetworkStateReceiver", "网络已断开");
// 在此处执行相应的操作
}
}
}
你需要在 AndroidManifest.xml 文件中注册这个广播接收器,并声明相应的权限:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<application>
...
<receiver
android:name=".NetworkStateReceiver"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
</intent-filter>
</receiver>
</application>
这样,当手机网络连接状态发生变化时,你就可以接收到相应的广播,从而执行你想要的操作。
发布者:luotuoemo,转转请注明出处:https://www.jintuiyun.com/136607.html