項目中有時會需要啟動另外的程序來協助實現一些功能,如系統打電話會調用電話程序,打開圖片會打開圖片程序等。
讓我們來看看用代碼是如何實現這個功能的。
/**
* 啟動應用
*
@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元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元

