jssyxj 发表于 2015-10-2 11:35:32

Android 监测手机联网状态 wifi、移动数据流量、无联网状态

  手机当完成联网时会发送一个广播,我们只要创建一个广播接收者即可,代码如下:



package com.example.NetworkChangeReceiver2;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.widget.Toast;
/**
* Created by Heyiyong on 2014-4-20 下午2:23.
*/
public class NetworkChangeReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetworkInfo = cm.getActiveNetworkInfo();
if (activeNetworkInfo == null) {
Toast.makeText(MyActivity.instance, "当前无网络连接!", 1).show();
}
if (activeNetworkInfo.getType() == ConnectivityManager.TYPE_WIFI) {
Toast.makeText(MyActivity.instance, "wifi连接成功!", 1).show();
return;
}
if (activeNetworkInfo.getType() == ConnectivityManager.TYPE_MOBILE) {//当前的connect不是wifi,并且是移动数据
Toast.makeText(MyActivity.instance, "移动数据流量连接!", 1).show();
return;
}
}
}
  
  MyActivity.java



package com.example.NetworkChangeReceiver2;
import android.app.Activity;
import android.os.Bundle;
public class MyActivity extends Activity {
public static MyActivity instance;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
instance = this;
}
}
  注意:不要忘了添加权限:



    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
  注册广播接收者:



      <receiver
android:name=".NetworkChangeReceiver"
android:label="NetworkConnection" >
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
</intent-filter>
</receiver>
  
页: [1]
查看完整版本: Android 监测手机联网状态 wifi、移动数据流量、无联网状态