android 使用brocastReceiver监听网络连接状态

public class BroadcastService extends Service{

    private ConnectivityManager connectivityManager;//网络连接管理器
    private NetworkInfo networkInfo;//当前网络的信息
    //点击查看
    private PendingIntent messagePendingIntent = null;

    //通知栏消息
    private Notification messageNotification = null;
    private NotificationManager messageNotificatioManager = null;
    private Intent notificationIntent=null;
    @Override
    public IBinder onBind(Intent intent) {
        // TODO Auto-generated method stub
        return null;
    }
    /**
     * 定义一个broadcastReceiver
     */
    private BroadcastReceiver myReceiver=new BroadcastReceiver() {

        @Override
        public void onReceive(Context context, Intent intent) {
            // TODO Auto-generated method stub
            String action=intent.getAction();
            if(action.equals(ConnectivityManager.CONNECTIVITY_ACTION)){
                connectivityManager=(ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
                WifiManager wifiManager=(WifiManager)context.getSystemService(Context.WIFI_SERVICE);
                wifiManager.setWifiEnabled(true);
                wifiManager.startScan();//开始扫描
                List<ScanResult> listResults=wifiManager.getScanResults();
                //listResults.get(0).toString();
                networkInfo=connectivityManager.getActiveNetworkInfo();
                if(networkInfo!=null&&networkInfo.isAvailable()){
                    Log.d("netWorkInfo","当前网络连接:"+networkInfo.getTypeName());
                }
                else {
                    Log.d("netWorkInfo","当前没有网络连接");
                }

            }
        }
    };

    @Override
    public void onCreate() {
        // TODO Auto-generated method stub
        super.onCreate();
        IntentFilter filter=new IntentFilter();//过滤intent
        filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);//添加action
        registerReceiver(myReceiver, filter);//注册receiver
        Log.i("tag","onCreate");
    }

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        // TODO Auto-generated method stub
        Log.i("tag","onStartCommand");
        setNotification("新通知");
        /*int intGetTastCounter=30;

        ActivityManager mActivityManager = (ActivityManager)getSystemService(ACTIVITY_SERVICE);
        ArrayList<String> arylistTask = new ArrayList<String>();
        List<ActivityManager.RunningTaskInfo> mRunningTasks = mActivityManager.getRunningTasks(intGetTastCounter);

        int i = 0;
         以循环及baseActivity方式取得工作名称与ID
        for (ActivityManager.RunningTaskInfo amTask : mRunningTasks)
        {
                     baseActivity.getClassName取出运行工作名称
                    arylistTask.add("" + (i++) + ": "+
                    amTask.baseActivity.getClassName()+
                    "(ID=" + amTask.id +")");
                    Log.d("task", arylistTask.get(i-1));
        }*/
        return super.onStartCommand(intent, flags, startId);
    }
    /**
     * 设置通知消息
     * @param message消息类型
     */
    private void setNotification(String message){
        notificationIntent = new Intent(this, SecondActivity.class);
        messagePendingIntent = PendingIntent.getActivity(this, 0,notificationIntent,0);
        messageNotificatioManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
        messageNotification=new Notification(R.drawable.ic_launcher, message, System.currentTimeMillis());
        //messageNotification.contentIntent=messagePendingIntent;
        messageNotification.setLatestEventInfo(this, message, "dfdf", messagePendingIntent);
        // 显示通知
       messageNotificatioManager.notify("df",R.drawable.ic_launcher, messageNotification);
    }
    @Override
    public void onDestroy() {
        // TODO Auto-generated method stub

        System.out.println("关闭服务了");
        unregisterReceiver(myReceiver);//移除注册的receiver
        System.exit(0);
        super.onDestroy();
    }

}
时间: 2024-10-12 04:09:06

android 使用brocastReceiver监听网络连接状态的相关文章

android 通过广播监听网络连接状况

首先添加以下权限 <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE&quo

android之ConnectivityManager简介,网络连接状态

android之ConnectivityManager简介,网络连接状态

Android使用BroadcastReceiver监听网络状态

在开发中,经常会遇到需要判断手机网络状态从而进行各种操作的功能,在这里简单介绍下这种功能的实现. 如题,通过BroadcastReceiver我们能在网络状态改变的时候监听到它. 那么,注册广播的两种方式: 1.静态注册:在AndroidManifest.xml中用标签声明注册,并在标签内用标签设置过滤器. 1 2 3 4 5 6 7 <!--继承BroadcastReceiver,重写onReceiver方法--> <receiver android:name="MyRece

android动态注册监听网络变化异常

在使用广播接收器监听网络变化的时候,在AndroidManifest.xml中加入<user-permission android:name="android.permission.ACCESS_NETWOEK_STATE"/>还是无法启动应用程序,显示如下异常 07-06 00:03:22.568 22393-22393/? E/AndroidRuntime﹕ FATAL EXCEPTION: main Process: com.lvkui.helloworld3, PI

iOS开发之监听网络连接,改变,断开

做iOS开发时,我们需要监控/监听网络状况,苹果提供了Reachability.h, Reachability.m. 导入Reachability.h 我们可以在 MainViewController的viewDidLoad方法内部写上: [self checkReachability]; 之后,具体方法如下 #pragma mark #pragma mark Reachability Methods #pragma mark - (void)checkReachability { [[NSNo

通过静态广播监听网络变化,在通过回调通知

package com.changim.patient.app.sys.receive; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.util.Log; import com.changim.patient.app.sys.Constants; import com.changim.patient.ap

android 监听网络状态的变化及实战

android 监听网络状态的变化及实际应用 转载请注明博客地址:http://blog.csdn.net/gdutxiaoxu/article/details/53008266 平时我们在请求错误的情况下,通常会进行处理一下,一般来说,主要分为两方面的错误 - 没有网络的错误 - 在有网络的情况下,我们客户端的错误或者服务器端的错误 今天这篇博客主要阐述以下问题 怎样监听网络状态的变化,包括是否打开WiFi,否打开数据网络,当前连接的网络是否可用 网络没有打开情况下的处理,如弹出对话框,跳转到

动态注册广播,监听网络状态变化,判断网络模式

注册广播监听网络连接和断开状态的变化,判断网络连接模式: private ConnectivityManager mConnectivityManager; private NetworkInfo netInfo; /////////////监听网络状态变化的广播接收器 private BroadcastReceiver myNetReceiver = new BroadcastReceiver() { @Override public void onReceive(Context contex

Android实时监听网络状态

在开发android应用时,涉及到要进行网络访问,时常需要进行网络状态的检查,以提供给用户必要的提醒.一般可以通过ConnectivityManager来完成该工作. ConnectivityManager有四个主要任务: 1.监听手机网络状态(包括GPRS,WIFI, UMTS等) 2.手机状态发生改变时,发送广播 3.当一个网络连接失败时进行故障切换 4.为应用程序提供可以获取可用网络的高精度和粗糙的状态 当我们要在程序中监听网络状态时,只要一下几个步骤即可:  1.处理Recevier接口