app启动其他应用
因开发需要内包一个app,所以要启动一个app,这种操作 如果知道包名和类名 其实很简单 只需要将包名内嵌即可(一般情况 我们都可以解压或者反接拿到)
代码如下:
1 2 3 4 5 | Intent intent = new Intent(Intent.ACTION_MAIN); // 必须要设置这两项 不然找不到 intent.addCategory(Intent.CATEGORY_LAUNCHER); <br> //设置包名 和类名 ComponentName mComponentName = new ComponentName( "com.kukum.mynews" , "com.kukum.android.SplashActivity" ); intent.setComponent(mComponentName); startActivity(intent); |
但是如果确实不知道类名 ,则需要先根据包名获取包信息 然后拿到启动类 进行跳转 代码如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | // 创建一个该包名相同的类别CATEGORY_LAUNCHER的Intent Intent resolveIntent = new Intent(Intent.ACTION_MAIN, null ); resolveIntent.addCategory(Intent.CATEGORY_LAUNCHER); resolveIntent.setPackage( "com.kukum.mynews" ); // 通过getPackageManager()的queryIntentActivities方法遍历 List<ResolveInfo> resolveinfoList = getPackageManager() .queryIntentActivities(resolveIntent, 0 ); // 因为有category 和action 关联 所以启动类只有一个 如果有的话 就是启动类 ResolveInfo resolveinfo = resolveinfoList.iterator().next(); if (resolveinfo != null ) { String className = resolveinfo.activityInfo.name; Intent intent = new Intent(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_LAUNCHER); ComponentName mComponentName = new ComponentName( "com.kukum.mynews" , className); intent.setComponent(mComponentName); startActivity(intent); } |
搞定
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步