android-用于启用禁用移动数据的侦听器(未连接或断开连接)

android-用于启用禁用移动数据的侦听器(未连接或断开连接),第1张

概述我测试了一些 *** 作(请参见下文).ConnectivityManager.CONNECTIVITY_ACTIONWifiManager.NETWORK_STATE_CHANGED_ACTIONPhoneStateListener.LISTEN_DATA_CONNECTION_STATE(itisnotactuallyaction)PhoneStateListener.LISTEN_DATA_CONNECTION_STATE(itisnotactuallyacti

我测试了一些 *** 作(请参见下文).

ConnectivityManager.CONNECTIVITY_ACTIONWifiManager.NETWORK_STATE_CHANGED_ACTIONPhonestateListener.ListEN_DATA_CONNECTION_STATE (it is not actually action)PhonestateListener.ListEN_DATA_CONNECTION_STATE (it is not actually action)

但是它们仅侦听状态(连接或断开连接).

当wifi断开连接时,它可以监听(启用移动数据->已连接->广播->监听器)

当wifi连接时,它无法收听(启用移动数据->连通性不变!)

我需要启用或禁用移动数据设置

我可以收听移动数据启用或禁用事件吗?

解决方法:

因此,深入研究它之后,更改该值似乎不会发送任何广播.甚至AndroID设置应用中的移动网络设置片段也不会监听更改.它仅签入onCreate()和onResume().因此,您似乎无法收听更改,但可以获取当前状态.不幸的是,这是一个私有API,因此您必须使用反射:

public static boolean isMobileDataEnabled(Context ctx) {    try {        Class<?> clazz = ConnectivityManager.class;        Method isEnabled = clazz.getDeclaredMethod("getMobileDataEnabled", null);        isEnabled.setAccessible(true);        ConnectivityManager mgr = (ConnectivityManager)                 ctx.getSystemService(Context.CONNECTIVITY_SERVICE);        return (Boolean) isEnabled.invoke(mgr, null);    } catch (Exception ex) {        // Handle the possible case where this method Could not be invoked        return false;    }}
总结

以上是内存溢出为你收集整理的android-用于启用/禁用移动数据的侦听器(未连接或断开连接)全部内容,希望文章能够帮你解决android-用于启用/禁用移动数据的侦听器(未连接或断开连接)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1077080.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存