I'm using HTC Desire running stock Android 2.2 (with HTCs enhancements). There's a network operation selection in Settings / Wireless & netwokrs / Mobile networks / Network operators, which allows to "Search networks" (and thus select one operator manually) or "Seleect automatically" (which would probably connect to anything it will find).
There are 3 major cellular network operators in my region currently and they allow inter-operator roaming, but for a huge roaming fee. I want to avoid this huge fee by manually forcing selection of operator once and for all. It seems to work if I select my operator (say, "Operator A") in "Search networks" mode mentioned above, and it kind of works - until I travel underground and GSM module faces following situations sequentially:
- Operators A, B, C are available (on surface) => using preferred "operator A" and everything's ok
- We move in the subway, no GSM network is available at all => everything's ok, it shows that network is not available
- We start to emerge on the surface, and "operator B" becomes available, while "operator A" (preferred one) does not. Device stops execution of whatever was running and pops up annoying menu to "choose" new connection opportunity - "operator B". One can dismiss this menu with "Return" button, it as situation slowly changes and more operators become available, this menu would pop up a few more times.
So, the question is - how do I force mobile operator selection once and for all, and disable that extremely annoying (interruping currently running activities) popup menu with recently found cellular connections?
UPDATE: I'm using GSM / GPRS / EDGE / 3G (HSDPA) networks and in fact question refers to both voice and data traffic, so restricting APN probably has nothing to do with it. Normally, concurrent operators in the same region don't allow to roam through each other, so this problem probably doesn't exist for most normal users.