Android程序打开第三方应用的一个解决方案
2015-03-05 15:34
411 查看
一般在不使用其他应用的开发者权限下,Android是可以通过内部代码直接打开手机上的第三方应用的,如使用以下的代码:
但是这里会出现一个问题,要是不知道第三方应用的包名以及包名里面要打开的Activity怎么破?
我的一个解决方案是(除了申请该应用的开发者权限的方案外!),用apktool将第三方应用的AndroidManifest文件解析出来。下载apktool后可在命令行中定位到apktool.bat,并执行apktool.bat d C:*.apk C:***(apktool.bat d C:\应用包 需要反编译到的文件夹目录)(应用包必须放在C盘下!),具体可以参考apk反编译。
这样就可以拿到Manifest文件中的包名和相关的启动Activity和其他Activity了!
还有什么更好的方案欢迎一起交流!
// 以微信为例,打开微信,先检查手机中是否安装微信 if (checkInstall("com.tencent.mm")) { Intent intent = new Intent(); // ComponentName("第三方应用包名","需要启动的Activity") ComponentName cmp = new ComponentName("com.tencent.mm", "com.tencent.mm.ui.LauncherUI"); intent.setAction(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_LAUNCHER); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.setComponent(cmp); startActivityForResult(intent, WECHAT); } else { Toast.makeText(getApplicationContext(), "您还尚未安装微信哦", Toast.LENGTH_SHORT).show(); }
但是这里会出现一个问题,要是不知道第三方应用的包名以及包名里面要打开的Activity怎么破?
我的一个解决方案是(除了申请该应用的开发者权限的方案外!),用apktool将第三方应用的AndroidManifest文件解析出来。下载apktool后可在命令行中定位到apktool.bat,并执行apktool.bat d C:*.apk C:***(apktool.bat d C:\应用包 需要反编译到的文件夹目录)(应用包必须放在C盘下!),具体可以参考apk反编译。
这样就可以拿到Manifest文件中的包名和相关的启动Activity和其他Activity了!
还有什么更好的方案欢迎一起交流!
相关文章推荐
- Android开发过程遇到的安装好的APP打开程序崩溃,或者安装后应用列表里没有的问题及解决方案
- 在IOS应用中打开另外一个应用的解决方案
- 把自己的应用设置关联为android系统默认打开程序
- Android 获取所有已安装应用信息(图标,名称,版本号,包) ,并在自己程序打开某个应用
- Android中WebView,打开第三方应用的问题
- android设定自己应用为打开某程序的应用
- Android Intent应用,打开网页,安装程序,打电话,打开地图等功能
- 从android一个apk中启动第三方apk应用
- Android 打开另外一个应用的activity
- AndroidIntent应用,打开网页,安装程序,打电话,打开地图等功能 .
- 在IOS应用中打开另外一个应用的解决方案
- android 打开第三方应用 跳转
- android 程序打开第三方程序
- android第三方应用apk安装和运行控制解决方案
- Android Intent应用,打开网页,安装程序,打电话,打开地图等功能
- Android Intent应用,打开网页,安装程序,打电话,打开地图等功能
- Android Intent应用,打开网页,安装程序,打电话,打开地图等功能
- android第三方应用apk安装和运行控制解决方案
- AndroidIntent应用,打开网页,安装程序,打电话,打开地图等功能
- (转)从android一个apk中启动第三方apk应用