通过Intent选择网络(2G/3G/4G)&打开设置程序任意界面

项目需求需要在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”。

参考内容
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。