Reputation: 21237
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
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
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
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