项目需求需要在app中动态的切换手机网络,于是有了本文。
话不多说,直接进入主题
代码
try{
Intent intent = new Intent();
intent.setClassName("com.android.phone", "com.android.phone.settings.PreferredNetworkTypeListPreference");
startActivity(intent);
} catch(Exception e){
Toast.makeText(getApplicationContext(), " Device not supported" , Toast.LENGTH_LONG).show();
}
解释
首先,我知道手机的设置那里有切换网络的页面,于是找到那个页面,我手机这个页面名称为:网络类型选择。
网络类型选择页面
然后,在AS终端(Terminal)执行adb命令:adb shell dumpsys activity | grep Run。这个命令的意义为显示手机运行的Activity。在执行结果中找到“网络类型选择”页面对应的包名与全路径类型。
命令执行结果最后,知道包名与类名就可以用Intent打开相应的页面了。同样的,利用这个思想可以打开所有设置页面。当然也可以打开所有第三方app的页面,不过前提是Export=“true”。
网友评论