美文网首页Android 编程Android开发Android技术知识
Android在应用内启动另一个应用程序apk的两种方式

Android在应用内启动另一个应用程序apk的两种方式

作者: At攻城狮 | 来源:发表于2017-08-11 17:47 被阅读58次

    Android开发有时需要在一个应用中启动另一个应用,比如Launcher加载所有的已安装的程序的列表,当点击图标时可以启动另一个应用。

    知道了另一个应用的包名和Launcher Activity的名字之后可以直接通过如下代码来启动:

    Intent intent = new Intent(Intent.ACTION_MAIN);

    intent.addCategory(Intent.CATEGORY_LAUNCHER);

    ComponentName cn = new ComponentName(packageName, className);

    intent.setComponent(cn);

    startActivity(intent);

    只知道包名时,我们可以通过ResolveInfo类来取得启动Acitivty的类名:

    PackageInfo pi = getPackageManager().getPackageInfo(packageName, 0);

    Intent resolveIntent = new Intent(Intent.ACTION_MAIN, null);

    resolveIntent.addCategory(Intent.CATEGORY_LAUNCHER);

    resolveIntent.setPackage(pi.packageName);

    Listapps = pm.queryIntentActivities(resolveIntent, 0);

    ResolveInfo ri = apps.iterator().next();

    if (ri != null ) {

    String packageName = ri.activityInfo.packageName;

    String className = ri.activityInfo.name;

    Intent intent = new Intent(Intent.ACTION_MAIN);

    intent.addCategory(Intent.CATEGORY_LAUNCHER);

    ComponentName cn = new ComponentName(packageName, className);

    intent.setComponent(cn);

    startActivity(intent);

    }

    相关文章

      网友评论

        本文标题:Android在应用内启动另一个应用程序apk的两种方式

        本文链接:https://www.haomeiwen.com/subject/yxsrrxtx.html