从android一个apk中启动第三方apk应用
我们在开发中,经常遇到遇到在一个apk中要去运行另外一个apk,就像我们windows一样,搞一个快捷方式一样,那怎么实现呢?
问题的核心点在于我们要拿到第三方apk的package名称跟class名称,这两个至关重要!比如笔者做测试用的qq apk,package名称是com.tencent.pad.qq,class名称是com.tencent.pad.qq.login.QQLoginActivity。从一个apk启动到另外一个apk,当然也是通过发送intent了。下面介绍一下几个简单步骤:
1、 为了直观还是建立一个图标比较好。在android里有ImageButton控件可以使用。在XML里定义如下:
<ImageButton android:id="@+id/StartQQ" android:layout_width="85dip" android:layout_height="54dip" android:layout_marginTop="20dip" />
2、 注册消息处理函数。也就是你点击该图标的时候,要做什么响应。注册代码如下:
private ImageButton mStartQQButton; mStartQQButton = (ImageButton) findViewById(R.id.StartQQ); mStartQQButton.setOnClickListener(mStartQQListener);
3、 准备intent,发送intent。代码如下:
private View.OnClickListener mStartQQListener = new View.OnClickListener() { public void onClick(View v) { if (localService == null) return; localService.reqMusicExit(); Intent mIntent = new Intent( ); ComponentName comp = new ComponentName("com.tencent.pad.qq", "com.tencent.pad.qq.login.QQLoginActivity"); mIntent.setComponent(comp); mIntent.setAction("android.intent.action.VIEW"); startActivity(mIntent); finish(); } };
这只是一个实例,掌握了这种方法,我们就可以开发出类似windows快捷图标栏,就很可以随心所欲,开发出客户喜欢的产品。 笔者顺便提一句,这个做法一定要在有代码的apk应用中去定制,比如在launcher中,还是自己开发的apk中。