我测试了一些 *** 作(请参见下文).
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-用于启用/禁用移动数据的侦听器(未连接或断开连接)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)