Android 安装和启动另外一个应用

有时候一个应用需要启动另外一个应用来完成操作,比如在某些应用中打开闹钟,相机,日历等等。

启动或安装相应的应用的方法:

Step1:判断是否安装目标应用。只要知道目标应用的安装包名就可以通过判断"/data/data/packagename"是否存在来实现。

[java] view plaincopy

  1. 01./**
  2. 02. * 判断是否安装目标应用
  3. 03. * @param packageName 目标应用安装后的包名
  4. 04. * @return 是否已安装目标应用
  5. 05. * @author zuolongsnail
  6. 06. */
  7. 07.private boolean isInstallByread(String packageName) {
  8. 08.    return new File("/data/data/" + packageName).exists();
  9. 09.}

Step2:目标应用已安装则启动,否则先安装。

[java] view plaincopy

  1. 01./**
  2. 02. * 先判断是否安装,已安装则启动目标应用程序,否则先安装
  3. 03. * @param packageName 目标应用安装后的包名
  4. 04. * @param appPath 目标应用apk安装文件所在的路径
  5. 05. * @author zuolongsnail
  6. 06. */
  7. 07.private void launchApp(String packageName, String appPath) {
  8. 08.    // 启动目标应用
  9. 09.    if (isInstallByread(packageName)) {
  10. 10.        // 获取目标应用安装包的Intent
  11. 11.        Intent intent = getPackageManager().getLaunchIntentForPackage(
  12. 12.                packageName);
  13. 13.        startActivity(intent);
  14. 14.    }
  15. 15.    // 安装目标应用
  16. 16.    else {
  17. 17.        Intent intent = new Intent();
  18. 18.        // 设置目标应用安装包路径
  19. 19.        intent.setDataAndType(Uri.fromFile(new File(appPath)),
  20. 20.                "application/vnd.android.package-archive");
  21. 21.        startActivity(intent);
  22. 22.    }
  23. 23.}

判断应用是否安装或者是否为最新版本

在我们安装应用的时候有时需要检查应用是否安装,未安装则安装,旧版本则覆盖安装。

[java] view plaincopy

    1. 01./** 判断是否安装或覆盖安装的类型*/
    2. 02.private static final int NOTINSTALL = 0;    // 未安装
    3. 03.private static final int INSTALLED = 1;     // 已安装且为新版本
    4. 04.private static final int OLDVERSION = 2;    // 已安装但为旧版本
    5. 05./**
    6. 06. * 判断应用是否安装或者是否为最新版本
    7. 07. * @param packageName 目标应用安装后的包名
    8. 08. * @param versionCode 指定的应用版本号
    9. 09. * @return 安装的类型
    10. 10. * @author zuolongsnail
    11. 11. */
    12. 12.private int isInstallByread(String packageName, int versionCode){
    13. 13.    // 判断是否安装
    14. 14.    if(new File("/data/data/" + packageName).exists()){
    15. 15.        // 获取系统中安装的所有应用包名集合
    16. 16.        List<PackageInfo> packages = getPackageManager().getInstalledPackages(0);
    17. 17.        for(int i=0;i<packages.size();i++){
    18. 18.            PackageInfo packageInfo = packages.get(i);
    19. 19.            // 找出指定的应用
    20. 20.            if(packageName.equals(packageInfo.packageName)){
    21. 21.                if(packageInfo.versionCode >= versionCode){
    22. 22.                    return INSTALLED;
    23. 23.                }else{
    24. 24.                    return OLDVERSION;
    25. 25.                }
    26. 26.            }
    27. 27.        }
    28. 28.    }
    29. 29.    return NOTINSTALL;
    30. 30.}

http://blog.csdn.net/gf771115/article/details/6637693

Android 安装和启动另外一个应用

时间: 2024-11-09 11:02:26

Android 安装和启动另外一个应用的相关文章

Android 通过广播启动另一个应用的Activity

需求:现在有应用A和应用B,我需要在A应用中启动B应用中的某个Activity 实现:A应用中的Activity发送广播,关键代码如下: String broadcastIntent = "com.example.android.notepad.NotesList";//自己自定义       Intent intent = new Intent(broadcastIntent);       this.sendBroadcast(intent); B应用中需要一个BroadcastR

android 从APP启动另一个APP

写下如下代码即可 import android.content.ComponentName; //引入 Intent mIntent = new Intent("android.intent.action.MAIN"); ComponentName comp = new ComponentName("你要启动app的包命,如:com.android.app", "你要启动app的首页,如:com.android.app.MainAcrivity"

Android 在一个程序中启动另一个程序

Android 开发有时需要在一个应用中启动另一个应用,比如Launcher加载所有的已安装的程序的列表,当点击图标时可以启动另一个应用. 一般我们知道了另一个应用的包名和MainActivity的名字之后便可以直接通过如下代码来启动: Intent intent = new Intent(Intent.ACTION_MAIN); intent.add

Android 一个应用启动另一个应用的说明

我们Android 开发有时需要在一个应用中启动另一个应用,比如Launcher加载所有的已安装的程序的列表,当点击图标时可以启动另一个应用. 一般我们知道了另一个应用的包名和MainActivity的名字之后便可以直接通过如下代码来启动: Intent intent = new Intent(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_LAUNCHER); ComponentName cn = new ComponentNam

Android 是怎么启动一个Acitivity的?

可以把启动过程分为client端和server端. 一.client端在启动一个Activity时进行的工作 备注:我个人理解,client端指的是相对后台ActivityManagerService 进程来说的前台用户可见的进程,如在界面启动某一个Activity的就是Laucher进程.这里则以从home桌面启动一个Activity来分析启动过程: (1)Launcher 这个进程的主线程,在捕获onClick点击事件后,调用 startActivitySafely 方法, startAct

windows ubuntu Android studio安装好启动没反应解决方法

 参考:http://blog.csdn.net/qq305013720/article/details/8934152 目前有三种解决方案,都是针对执行studio.bat出现错误导致android studio运行不起来,最后都是异工同曲:我用的第一种方法 1.改虚拟机配置文件studio.exe.vmoptions 有人说是java环境变量,如果不会照着设置 http://blog.csdn.net/huanghm88/article/details/3965218 因为Eclipse

Android官方入门文档[4]启动另一个Activity

Android官方入门文档[4]启动另一个Activity Starting Another Activity启动另一个Activity This lesson teaches you to1.Respond to the Send Button2.Build an Intent 3.Create the Second Activity4.Receive the Intent5.Display the Message You should also read?Installing the SDK

Android应用中如何启动另一个应用

Android中 一个应用启动另外一个应用一般有2种情况, 被启动应用的包名已知 和  未知两种情况: 1  被启动应用的包名已知: /**启动另外应用的代码,其中被启动的应用的包名为packageName, 应用的入口为packageName.MainActivity, 此方法的2个应用的AndroidManifest.xml文件都不需要修改 **/ Intent intent = new Intent(); intent.setComponent(new ComponentName("pac

Android从一个应用启动另一个主界面隐藏图标的应用

用a.apk启动b.apk,并且b的图标是在手机主界面上看不到的. 一.新建a,b两个android项目(新建helloworld项目相似),在a项目中增加点击事件(启动按钮来启动b应用).      二.在b应用中修改b manifest.xml中<intent-filter>...</intent-filter>的内容就可以隐藏b应用的图标了. <?xml version="1.0" encoding="utf-8"?> &l