Я пытаюсь обнаружить, когда происходит активация роуминга. До сих пор я использовал следующий кусок кода, а потому, что я не был в состоянии проверить это я не в курсе, что это правильностьобнаружение роуминга в android
TelephonyManager telephonyManager = TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
PhoneStateListener cellLocationListener = new PhoneStateListener() {
public void onCellLocationChanged(CellLocation location) {
if(telephonyManager.isNetworkRoaming()
{
Toast.makeText(getApplicationContext(),"in roaming",Toast.LENGTH_LONG).show();
}
}
};
telephonyManager.listen(cellLocationListener, PhoneStateListener.LISTEN_CELL_LOCATION);
Я написал это, полагая, что для того, чтобы активировать роуминг сначала необходимо изменить сигнальную ячейку. Пожалуйста, дайте мне знать, правильно ли мой вывод или нет, и если не так, как я мог бы это сделать.
Вы можете проверить это очень легко в эмуляторе я думаю. Если вы переключитесь на DDMS Debugging Perspective в Eclipse, вы можете выбрать свой эмулятор и затем выбрать роуминг в элементах эмулятора из списка выбора данных. Это должно вызвать изменение между роумингом и нет. Проблема в том, что он может использовать другой способ перехода от состояния к состоянию в эмуляторе, после чего произойдет фактическое устройство. Работает ли она в эмуляторе? – Janusz
Я работаю в другой среде IDE, чем Eclipse, у которой нет этой опции. –
Вы можете сделать то же самое через telnet на консоли эмулятора. Посмотрите на http://developer.android.com/intl/fr/guide/developing/tools/emulator.html#telephony. Вы можете использовать команду gsm для включения роуминга. – Janusz