`
shuai1234
  • 浏览: 978515 次
  • 性别: Icon_minigender_1
  • 来自: 山西
社区版块
存档分类
最新评论

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

 
阅读更多
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>   
 
方法二中AndroidManifest.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 一个应用启动另外一个应用Demo

    在Android平台上,应用程序之间的交互是通过Intent对象来实现的,这包括从一个应用启动另一个应用。本示例探讨了在已知和未知包名的情况下如何启动另一个应用的详细过程。 ### 已知包名的情况 #### 方法一:通过...

    Android 一个app启动另一个app

    在Android平台上,应用程序之间的交互是通过Intent机制实现的,这使得一个App能够启动另一个App,或者触发特定的操作。"Android 一个app启动另一个app"这个主题涉及到的核心知识点包括Intent的使用、Intent Filter的...

    获取Android所有应用程序列表,点击某一项时可启动相应应用

    在Android开发中,获取系统所有应用程序列表并实现点击启动应用是一项常见的需求,这通常涉及到对Android系统的应用管理和Intent机制的理解。下面将详细讲解这个过程。 首先,我们需要理解Android权限。在...

    Android 应用自启动

    综上所述,Android应用的自启动主要通过BroadcastReceiver监听ACTION_BOOT_COMPLETED广播并在接收到广播后启动服务实现。在实际开发中,需要遵循最佳实践,确保应用的自启动行为既满足功能需求,又不会过度消耗用户...

    Android从一个应用跳转到另一个应用

    本教程将详细讲解如何在Android应用中实现从一个应用跳转到另一个应用。 首先,我们需要了解Android中的Intent机制。Intent在Android系统中扮演着消息传递的角色,它用于启动活动(Activity)、服务(Service)或...

    Android 开机自启动应用

    在Android系统中,开机自启动应用是指当设备完成启动过程后,系统会自动运行的一类应用程序。这些应用通常会在用户无须手动干预的情况下执行特定任务,例如同步数据、推送通知或者进行后台服务的初始化。"BOOT_...

    android 开机启动应用

    在Android中,应用的启动通常始于一个Activity,而开机启动应用则需要借助广播接收器(BroadcastReceiver)。当设备完成启动并接收到ACTION_BOOT_COMPLETED广播时,我们定义的广播接收器可以捕获这个事件,从而启动...

    android应用程序开机启动

    Android应用程序可以实现开机时启动相关应用 如service等 Android系统在开机启动时会发出一个系统广播&quot;android intent action BOOT COMPLETED&quot; 在接收到这个广播就可以实现开机自启动功能 下面就是一个...

    android应用开机自启动

    在Android应用开发中,"开机自启动"是一个常见的需求,特别是在需要后台服务持续运行或者希望应用程序在用户开机后立即可用的情况下。本知识点主要讲解如何利用Android的广播接收器(BroadcastReceiver)来实现在...

    Android一个apk启动另外一个apk

    在Android平台上,一个APK应用启动另一个APK应用是一个常见的需求,这可能涉及到应用之间的交互、服务调用或者用户引导到不同的应用体验。这个过程主要依赖于Android的Intent机制,Intent是Android系统中用于组件间...

    android 判断应用是否第一次启动

    在启动应用的第一个Activity时,可以检查Intent是否有特定的Extra数据,如果没有,视为第一次启动。 以上就是判断Android应用是否第一次启动的常见方法,通常首选SharedPreferences,因为它简单且效率高。在实际...

    Android应用开机自动启动

    首先,我们需要创建一个`BroadcastReceiver`子类,例如命名为`BootReceiver`: ```java public class BootReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent ...

    android一个应用的acitvity调用另一个应用的activity

    然后,在应用A中,你可以创建一个Intent来启动应用B的Activity。以下是如何做到这一点的Java代码示例: ```java Intent intent = new Intent(); intent.setComponent(new ComponentName("com.example.appB", ...

    Android应用开机时自动启动

    本篇将深入讲解如何实现Android应用的开机自启动,并提供一个名为BootupDemo的示例代码作为参考。 首先,理解Android系统的启动流程是关键。当设备开机或恢复到激活状态时,系统会执行一系列初始化操作,其中包括...

    android监听手机app启动

    在Android系统中,开发者有时需要实现对其他应用启动情况的监听,这在各种场景下都有可能用到,比如为了分析用户行为、优化用户体验或者进行安全防护等。标题"android监听手机app启动"所指的就是这一功能,即在...

    Android_gif应用启动动画

    本文将深入探讨如何实现一个基于GIF的Android应用启动动画,并在动画播放完毕后跳转至自定义的主菜单。 1. **GIF资源准备** 在实现Android应用启动动画前,首先需要一个适合的GIF动图资源。确保GIF文件尺寸适中,...

    浅谈android性能优化之启动过程(冷启动和热启动)

    3. 在 Android 应用程序框架层中,ActivityManagerService 是一个非常重要的接口,它不但负责启动 Activity 和 Service,还负责管理 Activity 和 Service。 Step 1. 无论是通过 Launcher 来启动 Activity,还是通过...

    android 开机启动自己的应用

    本篇文章将深入探讨如何让应用在Android设备启动时自动运行,并分享一个名为"MyLauncher"的示例项目。 首先,理解Android系统的启动流程至关重要。Android系统启动后,会执行系统级别的启动服务,然后依次启动各种...

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

    在Android系统中,一个应用程序(App)启动另一个应用程序是通过Intent机制实现的。Intent是Android系统中的一个核心组件,它用于在组件之间传递消息,包括启动新的Activity、Service或者BroadcastReceiver。在这里...

Global site tag (gtag.js) - Google Analytics