gpt4 book ai didi

android网络更改广播接收器并获取网络类型

转载 作者:行者123 更新时间:2023-11-30 03:28:11 27 4
gpt4 key购买 nike

这是我在 list 文件中注册的接收器

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

现在我要做的是每当网络类型发生变化时,例如 GSM 到 UMTS 或 EDGE 到 UMTS 等我想获得这种类型我已经做过的是当我的应用程序在 previous_network_type 变量中启动时保存网络类型并且在接收器中

 current_network_type=telephony.getNetworkType();

完成任务后

      previous_network_type=current_network_type;

并且这些变量在服务中是静态的,并且该服务正在运行,所以问题是 M 在某个时间在一个变量中的两个变量中都为 0,这是不正确的任何帮助?因为 0 是未知的

最佳答案

对于你所说的,我理解你没有考虑到每次触发接收器时它都会创建一个新实例,该实例在其工作后被销毁。即使使用静态变量,您也没有持久值。

对我有用的一个解决方案是使用 SharedPreferences。请注意,在 API11+ 上,您应该使用标志 MODE_MULTI_PROCESS,如下所示:

if (Build.VERSION.SDK_INT>=11)
mySettings=context.getSharedPreferences("MyPrefs",Context.MODE_MULTI_PROCESS);
else
mySettings=context.getSharedPreferences("MyPrefs",0);
int netType = mySettings.getBoolean("netType",0);

希望对你有帮助

关于android网络更改广播接收器并获取网络类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17906674/

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