Android Studio:ActivityNotFoundException:Wi-Fi设置

时间:2018-10-14 18:18:13

标签: java android

我正在尝试在Andoird应用程序中以编程方式打开wifi设置。它可以在大多数设备上使用,但在Android平板电脑上会崩溃,并显示以下错误消息:

android.content.ActivityNotFoundException: Unable to find explicit activity class {com.android.settings/com.android.settings.wifi.WifiSettings}; have you declared this activity in your AndroidManifest.xml?

这是我在主要活动中的代码:

Button wifisettings = (Button) findViewById(R.id.WiFiSettings);
    wifisettings.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            final Intent intent = new Intent(Intent.ACTION_MAIN, null);
            intent.addCategory(Intent.CATEGORY_LAUNCHER);
            final ComponentName cn = new ComponentName("com.android.settings", "com.android.settings.wifi.WifiSettings");
            intent.setComponent(cn);
            intent.setFlags(intent.FLAG_ACTIVITY_NEW_TASK);
            startActivity(intent);
        }
    });

2 个答案:

答案 0 :(得分:1)

如果您想从应用程序中调用WiFiSettings,请使用以下命令:

startActivity(new Intent(Settings.ACTION_WIFI_SETTINGS));

请查看此https://developer.android.com/reference/android/provider/Settings,以了解进一步的情况以及如何将用户带到那里

答案 1 :(得分:0)

尝试在您的AndroidManifest.xml中添加它:

<activity
    android:name="com.android.settings.wifi.WifiSettings"/>

Same issue由其他用户在评论中报告。

更新:如果它不起作用,请使用此行,该行更易于使用:

Button wifisettings = (Button) findViewById(R.id.WiFiSettings);
wifisettings.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            startActivity(new Intent(Settings.ACTION_WIFI_SETTINGS));
        }
    });