Android中 一个应用启动另外一个应用一般有2种情况,被启动应用的包名已知和未知两种情况: 
 
*情况一 ==》已知包名通常有两种方法: 
 
方法一: 
 
[java]
 
    /**启动另外应用的代码,其中被启动的应用的包名为org.hy,应用的入口为org.hy.Test222Activity,此方法的2个应用的AndroidManifest.xml文件都不需要修改**/   
    Intent intent = new Intent();   
    intent.setComponent(new ComponentName("org.hy","org.hy.Test222Activity"));   
    intent.setAction(Intent.ACTION_VIEW);   
    startActivity(intent);   
 
方法二: 
 
[java]
 
    /**启动另外应用的代码,其中被启动应用的action为org.hy.test222(自己随便定义),此方法的被启动的应用的AndroidManifest.xml要做修改**/   
    Intent intent = new Intent();   
    intent.setAction("org.hy.test222");   
    startActivity(intent);   
 
[html] 
 
    /**被启动应用的AndroidManifest.xml**/   
    <?xml version="1.0" encoding="utf-8"?>   
    <manifest xmlns:android=" http://schemas.android.com/apk/res/android "   
          package="org.hy"   
          android:versionCode="1"   
          android:versionName="1.0">   
        <uses-sdk android:minSdkVersion="10" />   
       
        <application android:icon="@drawable/icon" android:label="@string/app_name">   
            <activity android:name=".Test222Activity"   
                      android:label="@string/app_name">   
                <intent-filter>   
                    <action  android:name="org.hy.test222"/>   
                    <action android:name="android.intent.action.MAIN" />   
                    <category android:name="android.intent.category.DEFAULT" />   
                </intent-filter>   
            </activity>   
       
        </application>   
    </manifest>   
 
方法二中 Android Manifest.xml中category设置为android.intent.category.DEFAULT的情况是当Intent启动的时候没有明确指定启动哪个antivit时候就要这样设置。 
 
*情况二 ==》未知包名: 
这种情况虽然是不知道应用的包名,但是最终启动应用还是通过包名启动。所以要通过一种方法获得手机内应用的包名。 
手机内分 系统 预装应用和非系统自己安装的应用,可以通过下边的方法判断,返回一个包名的List集合: 
[java]
 
    /**获得手机内应用的包名,返回一个List集合**/   
    public List<PackageInfo> getAllApps() {     
            List<PackageInfo> apps = new ArrayList<PackageInfo>();     
            PackageManager packageManager = this.getPackageManager();     
            //获取手机内所有应用     
            List<PackageInfo> paklist = pManager.getInstalledPackages(0);     
            for (int i = 0; i < paklist.size(); i++) {     
                PackageInfo pak = (PackageInfo) paklist.get(i);     
                //判断是否为非系统预装的应用  (大于0为系统预装应用,小于等于0为非系统应用)   
                if ((pak.applicationInfo.flags & pak.applicationInfo.FLAG_SYSTEM) <= 0) {     
                    apps.add(pak);     
                }     
            }     
            return apps;     
    }   
 
获得包名后,就可以通过获得要启动的包名启动应用了 
[java]
 
    public void launchApp() {   
            PackageManager packageManager = this.getPackageManager();   
            List<PackageInfo> packages = getAllApps();   
            PackageInfo pa = null;   
            for(int i=0;i<packages.size();i++){   
                pa = packages.get(i);   
                //获得应用名   
                String appLabel = packageManager.getApplicationLabel(pa.applicationInfo).toString();   
                //获得包名   
                String appPackage = pa.packageName;   
                Log.d(""+i, appLabel+"  "+appPackage);   
            }   
            Intent intent = packageManager.getLaunchIntentForPackage("jp.co.johospace.jorte");//"jp.co.johospace.jorte"就是我们获得要启动应用的包名   
            startActivity(intent);   
        }

Android 一个应用启动另外一个应用相关推荐

  1. Android中 一个应用启动另外一个应用一

    Android中 一个应用启动另外一个应用一般有2种情况,被启动应用的包名已知和未知两种情况:    *情况一 =====>已知包名通常有两种方法:    方法一:    [java]      ...

  2. 开机自启动和由一个APK启动另一个APK核心代码

    1.开机自启动 public class BootReceiver extends BroadcastReceiver {private static final String ACTION = &q ...

  3. Android 利用Intent启动另一个app应用时,一个崩溃的问题

    今天在做Launcher项目时,需要显示所有app,并且点击调用,在调用时,遇到一个崩溃问题.在此做一记录. 问题:在本地写的一个demo应用,里面有一个bug,点击这个demo应用,应用崩溃.在la ...

  4. Android中一个APP启动另一个APP并传递参数

    被调用(启动)的APP: 项目名字:Demo_ybs 项目包名:com.ybs.demo_ybs 被调用APP中获取调用者的传递数据: package com.ybs.demo_ybs;import ...

  5. Mac OS X:如何制作一个可启动HFS+,一个FAT32,和一个NTFS分区(外置硬盘)

    介绍:     这个方法用途是: 在一个外置硬盘上,制作一个可以在任何Mac电脑(G4,G5-PPC和Intel-based)上可以启动的HFS+分区, 以及一个FAT32分区, 用于在OS X和Wi ...

  6. Android 中如何从一个App启动另外一个App(如启动支付界面、启动地图界面、应用商场下载App等场景)...

    假定两个App,分别是A和B,当A运行某个功能需要启动B,一种是启动B应用,一种直接进入B的某个Activity.搜了很多资料,没有一个完整的.下面就A--Android5.1.1.B--Androi ...

  7. Android中一个app启动另一个app|从浏览器打开app

    文章目录 一.应用A中点击按钮,跳转到应用B 二.应用A中点击按钮,跳转到应用B中的指定Activity--(scheme方式) 1.应用A中,点击按钮 2.应用B中,AndroidManifest. ...

  8. c#中一个进程启动另一个进程并传递参数

    1.开启进程 using System.Diagnostics;   ProcessStartInfo process = new ProcessStartInfo(); process.FileNa ...

  9. Android中在一个应用中去启动另外一个应用

    关注微信号:javalearns   随时随地学Java 或扫一扫 随时随地学Java Android中 一个应用启动另外一个应用一般有2种情况,被启动应用的包名已知和未知两种情况:  *情况一 == ...

最新文章

  1. 神色洋溢的 域名背后的故事
  2. 国立华侨大学校长写给2010届毕业生的话:人生的二和三
  3. __name__ == '__main__' 到底是什么意思
  4. python计算机知识点,最新最全Python基础的知识点复习完整版.pdf
  5. Object family 0401 is not intended for installed base category Installed Base
  6. 使用.NET Core创建Windows服务 - 使用.NET Core工作器方式
  7. 在Brackets中使用jsHint遇到的问题
  8. SQL零基础学习笔记(一)
  9. cannot load php5,Cannot load php5apache2_4.dll into server解决办法
  10. 互联网日报 | 6月15日 星期二 | 凯撒旅业拟换股吸并众信旅游;爱回收预计6月18日登陆纽交所;顺丰航空机队规模增至66架...
  11. 转 最小生成树(kruskal 算法 和prim算法)
  12. SpringBoot(10)
  13. 一个完整的pytorch预训练实现图像分类,模型融合
  14. C++ new 解析重载
  15. 计算机社团招新个人简历,大学社团招新面试自我介绍五篇
  16. 麒麟系统stty测试串口
  17. ubuntu1804安装YouCompleteMe 配置vim
  18. 人工智能在物流领域中的应用
  19. 年终总结:2021年最有用的数据清洗 Python 库
  20. 妈妈不在身边的第X个母亲节,用AI找回她的美好时光

热门文章

  1. php有道,PHP实例:php有道翻译api调用方法实例
  2. 2020年电赛 LMT70介绍和题目猜测
  3. 【EHub_tx1_tx2_E100】Ubuntu18.04 + ROS_ Melodic + Velodyne VLP-16雷达 测试使用
  4. java开发框架emp流程图,附相关架构及资料
  5. matlab生成jar eclipse正常调用jar
  6. 自动售货机控制模块-Verilog HDL
  7. html中矩形坐标,js怎么根据坐标在图片上画出矩形框?
  8. UI设计师必看,灵感爆表UI作品集
  9. Ubuntu18.04LTS +WIN10双系统安装+tensorflow-gpu 1.14安装配置(1)
  10. pdf2docx安装问题