从应用中启动另外的应用

系统 1686 0

项目中有时会需要启动另外的程序来协助实现一些功能,如系统打电话会调用电话程序,打开图片会打开图片程序等。

让我们来看看用代码是如何实现这个功能的。

      
        /**
      
      
        

         * 启动应用

         * 
      
      
        @param
      
      
         context

         * 
      
      
        @param
      
      
         packageName 包名

         * 
      
      
        @return
      
      
        */
      
      
        public
      
      
        static
      
      
        boolean
      
      
         startPackage(Context context, String packageName) {

                
      
      
        final
      
       Intent mainIntent = 
      
        new
      
       Intent(Intent.ACTION_MAIN, 
      
        null
      
      
        );

                mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);



                
      
      
        final
      
       List<ResolveInfo> apps =
      
         context.getPackageManager()

                                .queryIntentActivities(mainIntent, 
      
      0
      
        );

                
      
      
        //
      
      
         final List<ResolveInfo> matches = new ArrayList<ResolveInfo>();
      
      
        if
      
       (apps != 
      
        null
      
      
        ) {

                        
      
      
        //
      
      
         Find all activities that match the packageName
      
      
        int
      
       count =
      
         apps.size();

                        
      
      
        for
      
       (
      
        int
      
       i = 0; i < count; i++
      
        ) {

                                
      
      
        final
      
       ResolveInfo resolveInfo =
      
         apps.get(i);

                                
      
      
        final
      
       ActivityInfo activityInfo =
      
         resolveInfo.activityInfo;

                                
      
      
        if
      
      
         (packageName.equals(activityInfo.packageName)) {

                                        
      
      
        //
      
      
         matches.add(resolveInfo);
      
      

                                        String className =
      
         activityInfo.name;

                                        AspLog.i(TAG, 
      
      "startPackage: " + packageName + " & "

                                                        +
      
         className);

                                        ComponentName cn 
      
      = 
      
        new
      
      
         ComponentName(packageName, className);

                                        
      
      
        final
      
       Intent it = 
      
        new
      
      
         Intent(Intent.ACTION_MAIN);

                                        it.addCategory(Intent.CATEGORY_LAUNCHER);

                                        it.setComponent(cn);

                                        it.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

                                        context.startActivity(it);

                                        
      
      
        return
      
      
        true
      
      
        ;

                                }

                        }

                }



                
      
      
        //
      
      
         MMToast mToast = new MMToast(activity, MMToast.LENGTH_SHORT);

                
      
      
        //
      
      
         mToast.setView(R.layout.login_message_panel);

                
      
      
        //
      
      
         mToast.setTipImage(R.drawable.login_tip_failure);

                
      
      
        //
      
      
         mToast.setText(R.string.open_app_error);

                
      
      
        //
      
      
         mToast.show();
      
      
        return
      
      
        false
      
      
        ;

        }
      
    

 

更多的 移动互联网的发展趋势 拓者设计吧效果图 移动互联网应用 相关的资料请到 互联网的一点事 www.yidin.net  留言

欢迎各位同学加入 android 技术二群 222392467 

从应用中启动另外的应用


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论