gpt4 book ai didi

android - 打开/关闭移动蜂窝数据(移动互联网)时如何触发 BroadcastReceiver

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:58:07 25 4
gpt4 key购买 nike

如果我打开/关闭移动蜂窝数据,我想知道如何触发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>

list 权限

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

这是我的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");
}

}

最佳答案

您需要指定适当的权限并执行如下所述的必要操作:

list 中的权限:

<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"/>

list 中的接收方声明:

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

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");
}
}
}

}

注意:

确保您的移动蜂窝数据连接正常。如果您没有互联网包并且您只是打开/关闭,则此接收器不会触发。您肯定需要有工作联系才能进行测试。

关于android - 打开/关闭移动蜂窝数据(移动互联网)时如何触发 BroadcastReceiver,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27559837/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com