Android中打开其他应用(或者系统应用)Activity或者Fragment总结

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android中打开其他应用(或者系统应用)Activity或者Fragment总结相关的知识,希望对你有一定的参考价值。

参考技术A 最近在做项目适配工作,需要打开手机中设置页面进行设置。国内 rom 都是自己改过的,适配起来也是稍微的麻烦。同一个功能不同的手机品牌界面都不一样,纯粹的用 adb 命令以及 logcat 来查看每个手机对应的页面的 Activity 或者 Fragment 以及包名。简单的记录一下过程。

在控制台中输入一下命令,可以查看当前页面显示Activity的全部信息

拿小米手机 (android 6.0, MIUI 9.2 )的锁屏和密码这个功能页面来说。在控制台输入命令之后,可以看到一长串的信息。

可以看到当前的 Activity 的包名 com.android.settings 以及 Activity 的名称 SubSettings 。这样不久可以通过隐士调用打开页面了么? 直接上手操作一波。

结果很尴尬的,打开的是空白页,这又是怎么回事?而且跳转了几个页面在同时输入上边命令,也是显示这个页面 SubSettings 。这样就开始疑惑了,想到这应该是小米在上边改动,通过Fragment来实现相关的功能了。先看看原生的系统源码。(网上源码地址: http://androidxref.com/ )。打开源码,发现没有实现什么具体的东西。

但是看到源码中 protected boolean isValidFragment(String fragmentName) 确定了这其实就是一个 Fragment 的容器。好那再接着看 dumpsys 命令的返回信息。

看到 Activie Fargment MiuiSecuritySettings 。 但是又不知道包名,因为手机厂商各种改,不一定包名就是 settings 。就有通过 Android Studio Logcat 找到了解决方案。链接手机的时候 Logcat 打印了各种系统的 log 。 Ctrl + F 直接搜索一下 MiuiSecuritySettings 。果然找到了

最后,通过如下的方法,启动小米系统的锁屏和密码设置界面

其他的页面,应该也是大同小异的处理思路,只能一个个手机来实际适配了,并没有找到一个很好的解决办法,挨。

以上是关于Android中打开其他应用(或者系统应用)Activity或者Fragment总结的主要内容,如果未能解决你的问题,请参考以下文章

即使在操作系统终止应用程序后,Android 活动仍保留在堆栈中

android activity启动的4种方式记录及打开其他应用的activity的坑

从其他应用打开 Twitter 应用中的页面 - Android

Android Intent 在其他应用程序中打开

如何从 Android 应用程序中启动统一游戏?

Android打开后台运行或者未开启的应用