(转)从android一个apk中启动第三方apk应用

时间:2021-05-19 19:46:15

从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里定义如下:

  1. <ImageButton android:id="@+id/StartQQ"
  2. android:layout_width="85dip"
  3. android:layout_height="54dip"
  4. android:layout_marginTop="20dip" />

2、                  注册消息处理函数。也就是你点击该图标的时候,要做什么响应。注册代码如下:

  1. private ImageButton  mStartQQButton;
  2. mStartQQButton = (ImageButton) findViewById(R.id.StartQQ);
  3. mStartQQButton.setOnClickListener(mStartQQListener);

3、                  准备intent,发送intent。代码如下:

  1. private View.OnClickListener mStartQQListener = new View.OnClickListener() {
  2. public void onClick(View v) {
  3. if (localService == null) return;
  4. localService.reqMusicExit();
  5. Intent mIntent = new Intent( );
  6. ComponentName comp = new ComponentName("com.tencent.pad.qq", "com.tencent.pad.qq.login.QQLoginActivity");
  7. mIntent.setComponent(comp);
  8. mIntent.setAction("android.intent.action.VIEW");
  9. startActivity(mIntent);
  10. finish();
  11. }
  12. };

这只是一个实例,掌握了这种方法,我们就可以开发出类似windows快捷图标栏,就很可以随心所欲,开发出客户喜欢的产品。 笔者顺便提一句,这个做法一定要在有代码的apk应用中去定制,比如在launcher中,还是自己开发的apk中。