监控Android服务中的网络连接类型更改

时间:2013-07-26 18:16:04

标签: android broadcastreceiver

我想捕获Android服务中的网络连接类型更改,并在事件触发时运行此服务的代码。如何在没有单独的类的情况下在Service类中执行此操作?我有这个代码,但它不起作用。

 BroadcastReceiver networkStateReceiver = new BroadcastReceiver() {

        @Override
        public void onReceive(Context context, Intent intent) {
            playlist="NETWORK TYPE CHANGED";
        }
    };

 public void playSong(Context c, String url) {

        try
        {

IntentFilter filter = new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION);        
            registerReceiver(networkStateReceiver, filter);

1 个答案:

答案 0 :(得分:1)

您的BroadcastReceiver需要从系统接收Intent,因此您需要在AndroidManifest中注册BroadcastReceiver

<receiver
    android:name=".ConnectivityReceiver
    android:exported="false" >
    <intent-filter>
        <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
    </intent-filter>
</receiver>

并且不要忘记许可

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
相关问题