[英]Network Changed Broadcast Receiver is not executing
I need a Broadcast Receiver name "NetworkReciver.java" that should execute when Internet is Connected or Disconnected. 我需要一个广播接收器名称“ NetworkReciver.java”,该名称应在Internet连接或断开连接时执行。 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 在MainActivity.java中请求权限
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: 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");
}
}
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. 如果目标为Android 7.0(API级别24)及更高版本的应用在清单中声明了广播接收器,则不会接收
CONNECTIVITY_ACTION
广播。 Apps will still receive CONNECTIVITY_ACTION
broadcasts if they register their BroadcastReceiver
with Context.registerReceiver()
and that context is still valid. 如果应用向
Context.registerReceiver()
注册其BroadcastReceiver
,并且该上下文仍然有效,则它们仍将接收CONNECTIVITY_ACTION
广播。
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.
阅读在Android中动态注册/注销广播接收器,这将为您提供有关动态方式的想法。
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
注意:自API 28起不推荐使用
CONNECTIVITY_ACTION
引入的其他选项很少,您可以在同一网址中找到CONNECTIVITY_ACTION
you must register NetworkReciever this broadcast receiver like registerReceiver(new NetworkReciever()); 您必须像该registerReceiver(new NetworkReciever())一样注册NetworkReciever这个广播接收器; in any activity
在任何活动中
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.