今天写项目的时候遇到了问题在网上看到了一些代码,这些代码我没见过,想不到Intent还能这么用,intent之前只知道传递参数,对象,想不到也可以打开其它apk文件的ACTIVITY。比如是我需要设置网络(此时网络没有打开),就用Intent跳转到手机的设置界面。下面写代码:
Intent mintent = new Intent("/");
ComponentName comp = new ComponentName("com.android.settings","com.android.settings.WirelessSettings");
mintent.setComponent(comp);
mintent.setAction("android.intent.action.VIEW");
startActivity(mintent);
但是上述的代码可能会出错,
别人的解释:
问题:
android 4.0如何打开无线设置界面?
答案:
在android4.0之前可以通过下面方法打开无线网络设置页面,可是在4.0以上则会抛异常
Intent mIntent = new Intent("/");
ComponentName comp = new ComponentName(
"com.android.settings",
"com.android.settings.WirelessSettings");
mIntent.setComponent(comp);
mIntent.setAction("android.intent.action.VIEW");
startActivityForResult(mIntent, 0);
那么有什么方法进行兼容吗?
经过尝试采用下面的方法startActivity(new Intent(android.provider.Settings.ACTION_WIRELESS_SETTINGS));可以兼容4.0之前及之后的版本,不过由于android3.0之后设置界面改动很大,所以个人采用下面的方法打开网络设置
if(android.os.Build.VERSION.SDK_INT > 10 ){
//3.0以上打开设置界面
context.startActivity(new Intent(android.provider.Settings.ACTION_SETTINGS));
}else
{
context.startActivity(new Intent(android.provider.Settings.ACTION_WIRELESS_SETTINGS));
}