如果我打开/关闭移动蜂窝数据,我想知道如何触发BroadcastReceiver.我已经注册了BroadcastReceiver,如果我打开/关闭wifi,它工作正常但是如果我打开/关闭蜂窝数据没有广播触发器.有人可以帮我这个吗?
这是我的代码.
这里我在Manifest.file中注册BroadcastReceiver
<receiver android:name="com.servicesandroid.NetworkCheckReceiver" >
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
</intent-filter>
</receiver>
Run Code Online (Sandbox Code Playgroud)
清单权限
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET"/>
Run Code Online (Sandbox Code Playgroud)
这是我的BroadcastReceiver类.
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");
}
}
Run Code Online (Sandbox Code Playgroud)
您需要指定适当的权限并执行以下所述的必要操作:
清单中的权限:
<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"/>
Run Code Online (Sandbox Code Playgroud)
清单中的接收者声明:
<receiver
android:name=".NetworkCheckReceiver"
>
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
</intent-filter>
</receiver>
Run Code Online (Sandbox Code Playgroud)
NetworkCheckReceiver类文件:
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");
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
注意:
确保您有可用的移动蜂窝数据连接.如果您没有互联网包并且只是打开/关闭,则此接收器不会触发.你肯定需要有工作连接来测试.
| 归档时间: |
|
| 查看次数: |
6259 次 |
| 最近记录: |