2

I need a Broadcast Receiver name "NetworkReciver.java" that should execute when Internet is Connected or Disconnected. But it is noit executing.

Manifest permissions

 <uses-permission android:name="android.permission.INTERNET" />
 <uses-permission android:name="com.android.alarm.permission.SET_ALARM" />
 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />


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

In MainActivity.java requested permissions

String[] permissionsRequired = new String[]{Manifest.permission.SET_ALARM,
     Manifest.permission.INTERNET,
     Manifest.permission.ACCESS_NETWORK_STATE,};
     // Since these are Normal Permissions
     ActivityCompat.requestPermissions(this, permissionsRequired, 1);

NetworkReciever.java:

public class NetworkReciever extends BroadcastReceiver 
{

         @Override
         public void onReceive(Context context, Intent intent)
         {
                Log.i("KAMLESH", "Network REceiver Alarm Set in Hair Style");
         }
}
Cœur
  • 37,241
  • 25
  • 195
  • 267

2 Answers2

0

From documentation

Apps targeting Android 7.0 (API level 24) and higher do not receive CONNECTIVITY_ACTION broadcasts if they declare the broadcast receiver in their manifest. Apps will still receive CONNECTIVITY_ACTION broadcasts if they register their BroadcastReceiver with Context.registerReceiver() and that context is still valid.


It means you need to register your receiver dynamically, not from manifest. Read Dynamically register/unregister a broadcast receiver in android which will give you the idea about dynamic way.


NOTE : The CONNECTIVITY_ACTION is deprecated since API 28. There are few other options introduced and you can find in the same url CONNECTIVITY_ACTION

Pankaj Kumar
  • 81,967
  • 29
  • 167
  • 186
  • The broadcast reciever runs only when app is running. It is not running when app is closed., –  Aug 06 '18 at 10:26
  • @user2446474 Yes as per changes made and you can not add receiver in manifest, you can not listen from being background.... you can look into methods added from API28 if they works from background or not. – Pankaj Kumar Aug 06 '18 at 11:44
0

you must register NetworkReciever this broadcast receiver like registerReceiver(new NetworkReciever()); in any activity

Parth Suthar
  • 123
  • 4