AndroidDev
AndroidDev

Reputation: 21237

BroadcastReceiver not firing for network connection changes

I'm trying to listen for changes in network connectivity. My broadcast receiver doesn't seem to be firing when I switch in or out of airplane mode. I'm not sure if this is because I don't have it registered correctly or if maybe airplane mode changes don't cause this to fire. Any advice is appreciated. Thanks!

My manifest:

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />

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

My broadcast receiver class:

public class NetworkReceiver extends BroadcastReceiver {

    private SharedPreferences prefs;
    private SharedPreferences.Editor prefEditor;

    @Override
    public void onReceive(Context context, Intent intent) {

        prefs = PreferenceManager.getDefaultSharedPreferences(context);
        prefEditor = prefs.edit();

        Boolean has_connection = prefs.getBoolean("has_connection", false);
        prefEditor.putBoolean("has_connection", !has_connection);
        prefEditor.commit();

        System.err.println("Network Receiver notified of a connectivity change!");
        System.err.println("New has_connection: " + !has_connection);

    }

}

Also, after the app runs for about 45 seconds, it suddenly crashes with the following error:

09-06 21:29:48.775: E/AndroidRuntime(15613): java.lang.RuntimeException: Unable to instantiate receiver com.mysite.myapp.NetworkReceiver: java.lang.ClassNotFoundException: com.mysite.myapp.NetworkReceiver

Upvotes: 2

Views: 2748

Answers (3)

kapil thadani
kapil thadani

Reputation: 1425

Don't give relative names for receiver. Give full package name as well. For example,

<receiver android:name="com.YouPackageName.NetworkReceiver" >
<intent-filter>
    <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
</intent-filter>

This should solve your problem for sure!

Upvotes: 0

peter011235
peter011235

Reputation: 73

This looks like a thread about a similar issue to what you're having. Maybe one of these answers will help:

Unable to instantiate receiver in BroadcastReceiver SMS

Upvotes: 2

Dixit Patel
Dixit Patel

Reputation: 3192

have u add permission in the AndroidManifest.xml,

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"></uses-permission>

Upvotes: 0

Related Questions