private boolean isAvilible(上下文Context,字符串packageName){
final package manager package manager = context . getpackagemanager();//獲取packagemanager
列表& ltpackageInfo & gtpinfo = package manager . getinstalled packages(0);//獲取所有已安裝程序的包信息。
列表& lt字符串& gtpName = new ArrayList & lt字符串& gt();//用於存儲所有已安裝程序的包名。
//從pinfo中逐個取出包名,按入pName列表。
如果(pinfo!= null){
for(int I = 0;我& ltpinfo . size();i++){
String pn = pinfo.get(i)。packageName
pname . add(pn);
}
}
返回pname . contains(package name);//判斷pName中是否有目標程序的包名,有真無假。
}
判斷後的邏輯:
//安裝完畢,打開程序,需要傳入參數包名稱:“com.skype.android.verizon”
if(isAvilible(this,“com . Skype . Android . Verizon”){
Intent I = new Intent();
component name cn = new component name(" com . Skype . Android . Verizon ",
" com . Skype . Android . Verizon . skypeactivity ");
I . set component(cn);
startActivityForResult(i,RESULT _ OK);
}
//沒有安裝,跳轉到市場下載程序。
否則{
uri uri = uri . parse(" market://details?id = com . Skype . Android . Verizon ");//id是包名。
意向it =新意向(Intent。ACTION_VIEW,uri);
startActivity(it);
}
轉載地址:/question/581019438 . html?問題& ampoldq=1