这次博主来分享一个很巧妙的办法来启动其他APP中Activity的方法。
首先说一下这样做的目的:最近博主在攻克一个技术难点,就是搞定某些三方系统中,对于应用权限的限制。为此给出用户指导,引导用户启动系统中的权限设置来设置信任。到此,问题就来了:我们不知道权限设定的包名,也不知道权限设置的Activity的名字,如何启动到指定的界面呢?
今天我们就来解决这个问题。
首先,我们需要一台已经获取Root权限了的手机。当然,模拟器之流也是可以考虑的。还有RE(Root Explorer)文件浏览器,用来浏览AndroidManifest.xml。这里注意的是,不要试图复制到电脑上查看,回是乱码的。
然后,我们开始通过包名来查找有可能的程序。由于博主手里用的测试机是华为的机器,因此以华为为例。其他厂商的手机请各位自行查找,方法应该是一致的。
使用RE文件浏览器,获取读写权限,依次打开/system/app。在这里,你将会看到好多APK。由于RE文件浏览器能够预览APK的图标,所以我们可以很轻松地通过软件图标,找到权限管理所属的APK文件。以华为最新的EMUI为例,权限管理所属的软件是手机管家,APK的文件名为:“HwSystemManager.apk”。
使用RE文件浏览器打开APK,选择查看,即可看到解压后的文件。也就可以直接找到AndroidManifest.xml。继续使用RE文件浏览器打开这个xml文件,其中的Activity的名字便一览无遗了。
最后,找到正确的Activity,启动它即可。
这样,就能够在用户指导的权限设置页给出正确的启动入口了。当然,此方法也适用于启动任何一个APP中的Activity,只要配置文件中的exported值不为false即可启动。
小小技巧,班门弄斧。不足之处,望路过大神多多指教。
原文地址:https://www.cnblogs.com/wenhanxiao/p/10331501.html