Android 是否更改了蜂窝状态的意向过滤器?

Android 是否更改了蜂窝状态的意向过滤器?,android,networking,android-intent,cellular-network,Android,Networking,Android Intent,Cellular Network,我正在尝试接收有关设备当前连接到的网络的运营商名称的信息。为此,我使用了简单的代码: TelephonyManager manager = (TelephonyManager) aContext.getSystemService(Context.TELEPHONY_SERVICE); String carrierName = manager.getNetworkOperatorName(); 为了不做任何愚蠢的工作,比如每X毫秒轮询一次此信息,我尝试注册一些接收器,每当发生与上述信息相关的事件

我正在尝试接收有关设备当前连接到的网络的运营商名称的信息。为此,我使用了简单的代码:

TelephonyManager manager = (TelephonyManager) aContext.getSystemService(Context.TELEPHONY_SERVICE);
String carrierName = manager.getNetworkOperatorName();
为了不做任何愚蠢的工作,比如每X毫秒轮询一次此信息,我尝试注册一些接收器,每当发生与上述信息相关的事件时,就会调用这些接收器。为此,我使用了一个在清单中的意图过滤器中设置了操作的接收器:

<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
每当我更改漫游操作员时,都会以适当的意图调用接收器。只要是在数据传输环境中,一切都很好。一旦我连接到WiFi或完全禁用移动数据,当我更改漫游运营商时,将停止调用此接收器


有没有一种聪明的方法不必每隔X毫秒轮询一次数据,我就可以在设备注册到另一个蜂窝网络运营商时获得运营商的名称?

数据连接更改时触发连接更改。那不是你想要的。尝试使用android.intent.action.SIM\u状态\u已更改。我不确定它是否会在航母改变时发射,但我想是的。试试看。另请参阅TelephonyManager以了解有关SIM卡状态的更多信息谢谢David。我添加了这样的动作过滤器:,不幸的是,当我进入和离开飞行模式时,它不会触发接收器。对于飞行模式,你需要收听android.intent.action.Planet\u MODENo,我的意思是,听过该意图的人说它应该对任何SIM状态的变化做出反应,这包括从飞行模式打开/关闭。