2012-02-07 27 views
0

在我的应用程序中,某些任务需要某种类型的网络连接(无论是wifi还是手机都可以)。在MyActivity,我有onResume()检查,以检查网络状态,如果没有连接,我想显示网络设置屏幕:在Android上显示所需的设置屏幕

private void showConnectionSettings() { 
    Intent intent = new Intent(Settings.ACTION_WIRELESS_SETTINGS); 
    ComponentName cn = new ComponentName("com.android.phone", "com.android.phone.Settings"); 

    intent.setComponent(cn); 
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 

    this.getBaseContext().startActivity(intent); 
} 

然而,这带给我的移动网络屏幕,当我想要显示用户可以选择其连接类型的Wireless and Network Settings屏幕。

+0

“如果没有连接,*我想*显示网络设置屏幕”?除此之外,我不知道你需要什么。 – Gangnus 2012-02-07 19:25:52

+0

[Android - 从应用打开设置]的可能重复(http://stackoverflow.com/questions/7454416/android-open-settings-from-app) – 2013-07-16 22:16:19

回答

1

我知道这是迟,但可能帮助别人。实现这一目标的最佳方式是:

  • 用于显示一般的连接设置,

    startActivityForResult(new Intent(android.provider.Settings.ACTION_WIRELESS_SETTINGS), 0);

  • 用于显示移动网络连接设置

    startActivityForResult(new Intent(android.provider.Settings.ACTION_DATA_ROAMING_SETTINGS), 0);

  • 用于显示无线上网设置

    startActivityForResult(new Intent(android.provider.Settings.ACTION_WIFI_SETTINGS), 0);

4

诚实地说,如果他们没有覆盖面,他们唯一的选择就是使用wifi。

试试这个

Intent intent = new Intent(Intent.ACTION_MAIN); 
intent.setClassName("com.android.phone", "com.android.phone.NetworkSetting"); 
startActivity(intent); 
+0

这只是显示一个对话框“搜索”。这更多的是显示正确的设置屏幕。 – 2012-02-07 21:28:45

1

此代码工作正常显示无线和网络设置。

Intent intent = new Intent(Intent.ACTION_MAIN); 
intent.setComponent(new ComponentName("com.android.settings","com.android.settings.WirelessSettings")); 
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
startActivity(intent); 
2
startActivity(new Intent(Settings.ACTION_WIRELESS_SETTINGS));