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

