我正在尝试在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);
}
});
答案 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));
}
});