如何触发广播接收器,当我开启/关闭移动蜂窝数据(手机上网) [英] How to trigger BroadcastReceiver when I turn on/off Mobile Cellular Data(Mobile Internet)
问题描述
我想知道如何触发的广播接收器如果我的开启/关闭移动蜂窝数据即可。我已经注册广播接收器和是如果我开启/关闭无线网络工作正常,但如果我打开/关闭蜂窝数据没有广播触发。任何人都可以请帮我这个?
这是我的code。
下面我注册的广播接收器在 Manifest.file
<接收机器人:名字=com.servicesandroid.NetworkCheckReceiver>
&所述;意图滤光器>
<作用机器人:名字=android.net.conn.CONNECTIVITY_CHANGE/>
&所述; /意图滤光器>
< /接收器>
清单权限
<使用许可权的android:NAME =android.permission.ACCESS_NETWORK_STATE/>
<使用许可权的android:NAME =android.permission.INTERNET对/>
下面是我的广播接收器类。
公共类NetworkCheckReceiver扩展广播接收器{ @覆盖
公共无效的onReceive(上下文的背景下,意图意图){
// TODO自动生成方法存根
Toast.makeText(背景下,已启动,Toast.LENGTH_SHORT).show();
Log.d(应用程序,网络连通性的变化);
}}
您需要指定相应的权限和做要紧如下所述:
在清单权限:
<使用许可权的android:NAME =android.permission.INTERNET对/>
<使用许可权的android:NAME =android.permission.ACCESS_NETWORK_STATE/>
<使用许可权的android:NAME =android.permission.ACCESS_WIFI_STATE/>
在清单的接收声明:
<接收
机器人:名字=。NetworkCheckReceiver
>
&所述;意图滤光器>
<作用机器人:名字=android.net.conn.CONNECTIVITY_CHANGE/>
&所述; /意图滤光器>
< /接收器>
NetworkCheckReceiver类文件:
公共类NetworkCheckReceiver扩展广播接收器{ @覆盖
公共无效的onReceive(上下文的背景下,意图意图){
如果(intent.getAction()。等于(ConnectivityManager.CONNECTIVITY_ACTION)){
Log.d(NetworkCheckReceiver,NetworkCheckReceiver援引...);
布尔noConnectivity = intent.getBooleanExtra(
ConnectivityManager.EXTRA_NO_CONNECTIVITY,FALSE); 如果(!noConnectivity){
Log.d(NetworkCheckReceiver,连接);
}
其他
{
Log.d(NetworkCheckReceiver,断开连接);
}
}
}}
注意:
请确保您有工作的移动蜂窝数据连接。如果你没有上网包,你只要开启/关闭该接收器将不会触发。你肯定的需要有工作连接以测试。
I want to know how to trigger BroadcastReceiver if I turn on/off mobile cellular data. I already registered BroadcastReceiver and it is working fine if I turn on/off wifi but if I turn on/off cellular data no broadcast trigger. can anyone please help me about this?
Here is my code.
Here I register BroadcastReceiver in Manifest.file
<receiver android:name="com.servicesandroid.NetworkCheckReceiver" >
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
</intent-filter>
</receiver>
Manifest permissions
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET"/>
Here is my BroadcastReceiver class.
public class NetworkCheckReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
Toast.makeText(context, "Started", Toast.LENGTH_SHORT).show();
Log.d("app","Network connectivity change");
}
}
You need to specify appropriate permissions and do the needful as mentioned below:
Permissions in manifest:
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
Receiver declaration in manifest:
<receiver
android:name=".NetworkCheckReceiver"
>
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
</intent-filter>
</receiver>
NetworkCheckReceiver class file:
public class NetworkCheckReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(ConnectivityManager.CONNECTIVITY_ACTION)) {
Log.d("NetworkCheckReceiver", "NetworkCheckReceiver invoked...");
boolean noConnectivity = intent.getBooleanExtra(
ConnectivityManager.EXTRA_NO_CONNECTIVITY, false);
if (!noConnectivity) {
Log.d("NetworkCheckReceiver", "connected");
}
else
{
Log.d("NetworkCheckReceiver", "disconnected");
}
}
}
}
Note:
Make sure you have working mobile cellular data connection. This receiver won't trigger if you don't have internet pack and you just switching on/off. You surely need to have working connection to test.
这篇关于如何触发广播接收器,当我开启/关闭移动蜂窝数据(手机上网)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!