项目中有时会需要启动另外的程序来协助实现一些功能,如系统打电话会调用电话程序,打开图片会打开图片程序等。
让我们来看看用代码是如何实现这个功能的。
/** * 启动应用 * @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