我为android.net.conn.CONNECTIVITY_CHANGE
创建了一个过滤器
我确实收到了对我的广播接收者的意图。
我的问题是提出connectivity_change
的原因。
API说明说:
发生了网络连接的变化。连接有 已经成立或失败。受影响网络的NetworkInfo是 作为额外发送;应该咨询一下,看看是什么样的 连通事件发生。
似乎我的广播接收器仅在移动网络连接/断开连接时被调用(pdp被破坏)。例如,当2g切换到3g时,它不会升起。
我可以用这个广播接收器捕获2g到3g的掉期吗? 我是否必须使用phonestatelistener来接收从2g到3g的掉期?
答案 0 :(得分:4)
你需要:
permission "android.permission.READ_PHONE_STATE"
//获取连接更改(2G / 3G /等)
permission "android.permission.ACCESS_COARSE_LOCATION"
//获取Cell / Tower更改
和
//Make the listener
listener = new PhoneStateListener() {
public void onDataConnectionStateChanged(int state, int networkType)
{
//We have changed proticols, for example we have gone from HSDPA to GPRS
//HSDPA is an example of a 3G connection
//GPRS is an example of a 2G connection
}
public void onCellLocationChanged(CellLocation location) {
//We have changed to a different Tower/Cell
}
};
//Add the listener made above into the telephonyManager
telephonyManager.listen(listener,
PhoneStateListener.LISTEN_DATA_CONNECTION_STATE //connection changes 2G/3G/etc
| PhoneStateListener.LISTEN_CELL_LOCATION //or tower/cell changes
);