Intereting Posts

Ошибка открытия меню настроек мобильной сети

Привет, я хотел бы открыть настройки мобильной сети с помощью этого кода:


Intent intentSettings = new Intent(); intentSettings.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intentSettings.setAction(Settings.ACTION_DATA_ROAMING_SETTINGS); cont.startActivity(intentSettings); 

Но это дает мне эту ошибку. Какие-нибудь идеи кто-нибудь?

 12-10 11:17:34.902: ERROR/AndroidRuntime(623): android.content.ActivityNotFoundException: No Activity found to handle Intent { action=android.settings.DATA_ROAMING_SETTINGS flags=0x4000000 } 

благодаря

Solutions Collecting From Web of "Ошибка открытия меню настроек мобильной сети"

Чтобы добиться этого, измените свое намерение на следующий код:

 Intent intent=new Intent(Settings.ACTION_DATA_ROAMING_SETTINGS); ComponentName cName = new ComponentName("com.android.phone","com.android.phone.Settings"); intent.setComponent(cName); 

В основном манифест андроида требует фильтра компонентов.

Вы можете попытаться избавиться от FLAG_ACTIVITY_NEW_TASK , который может не понадобиться в этом случае и посмотреть, поможет ли это.

Если это не поможет, то либо:

  • Вы используете это на Android 1.1 или ранее (кажется маловероятным)
  • Вы запускаете это на устройстве с проблемой совместимости (если это так, сообщите мне, какое устройство оно)
  • Что-то действительно странное происходит

ОБНОВИТЬ

Похоже, что ответ – третья пуля. Хотя ACTION_DATA_ROAMING_SETTINGS находится в документации, сам приложение «Настройки» не имеет для него « <intent-filter> .

Я вернусь, когда выпущен источник Android 2.3, и посмотрим, изменит ли это историю. Если нет, я напишу ошибку, потому что это либо ошибка документации, либо ошибка приложения настроек, ИМХО.

Это работает так же для ACTION_NETWORK_OPERATOR_SETTINGS, просто добавьте следующий компонент:

Intent intent=new Intent(Settings.ACTION_NETWORK_OPERATOR_SETTINGS);

ComponentName cName = new ComponentName("com.android.phone","com.android.phone.Settings");

intent.setComponent(cName);