启动apk的常用方法

方法一:最直接的就是知道apk的包名和启动类名, 直接启动

1 Intent mIntent = new Intent( );
2 ComponentName comp = new ComponentName("包名""类名");    
3 mIntent.setComponent(comp);
4 mIntent.setAction("android.intent.action.VIEW");
5  
6 startActivity(mIntent);


方法二:如果只知道包名,在这种情况下通常也可以启动,通常调用publicabstract Intent getLaunchIntentForPackage(String packageName)

大概意思就是返回一个程序入口的Intent,就是Java程序的Main方法。直接startActivity(返回的intent)即可。

Intent mIntent =  getPackageManager()getLaunchIntentForPackage(packageName);

if(mIntent != null) startActivity(mIntent);


方法三:如果不知道包名类名的话,隐式意图Intent来启动。

具体实现代码:

  1. Intent intent = new Intent("注册的Action");

    startActivity(intent); 即可启动一个Activity,和调用系统相机拍照,调用文件管理选择文件同一个写法

  2. 通过 PackageManager 获取本机安装的应用,PackageManager可以得到包名,程序名和icon等应用信息,然后通过包名来启动,代码如下:

PackageInfo pi;  

        try {  

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

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

            resolveIntent.setPackage(pi.packageName);  

            PackageManager pManager = getPackageManager();  

            List apps = pManager.queryIntentActivities(  

                    resolveIntent, 0);  

  

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

            if (ri != null) {  

                packageName = ri.activityInfo.packageName;  

                String className = ri.activityInfo.name;  

                Intent intent = new Intent(Intent.ACTION_MAIN);  

                ComponentName cn = new ComponentName(packageName, className);  

                intent.setComponent(cn);  

                startActivity(intent);  

            }  

        } catch (NameNotFoundException e) {  

            e.printStackTrace();  

        }  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值