判断手机已安装某程序的方法:
private boolean isAvilible(Context context, String packageName){
final PackageManager packageManager = context.getPackageManager();//获取packagemanager
List< packageInfo> pinfo = packageManager.getInstalledPackages(0);//获取所有已安装程序的包信息
List<String> pName = new ArrayList<String>();//用于存储所有已安装程序的包名
//从pinfo中将包名字逐一取出,压入pName list中
if(pinfo != null){
for(int i = 0; i < pinfo.size(); i++){
String pn = pinfo.get(i).packageName;
pName.add(pn);
}
}
return pName.contains(packageName);//判断pName中是否有目标程序的包名,有TRUE,没有FALSE
}

判断后的逻辑:
//已安装,打开程序,需传入参数包名:"com.skype.android.verizon"
if(isAvilible(this, "com.skype.android.verizon")){
Intent i = new Intent();
ComponentName cn = new ComponentName("com.skype.android.verizon",
"com.skype.android.verizon.SkypeActivity");
i.setComponent(cn);
startActivityForResult(i, RESULT_OK);
}
//未安装,跳转至market下载该程序
else {
Uri uri = Uri.parse("market://details?id=com.skype.android.verizon");//id为包名
Intent it = new Intent(Intent.ACTION_VIEW, uri);
startActivity(it);

}


转载自http://ruixiazun.blog.163.com/blog/static/906879182013021115923732/

更多相关文章

  1. [zz]一个JNI下c和java程序范例
  2. Android 对程序异常崩溃的捕捉
  3. android程序执行adb shell命令
  4. vs xamarin android 监听返回键退出程序
  5. [android]为程序创建快捷方式
  6. 【Android自学笔记】为Android应用程序添加Rate功能
  7. 第一章:初入Android大门(程序加载应用)
  8. android 加法程序
  9. 【从头学android】第一个程序,点按钮显示Hello World

随机推荐

  1. node.js+Android(安卓)http请求响应
  2. Android(安卓)的 CRUD
  3. android为listView添加表头
  4. Android(安卓)service传递的问题
  5. Android(安卓)自动化测试―robotium(四)Che
  6. 用gdb调试 android webkit
  7. [置顶] Cocos2d android(一个小时学会Fly
  8. Eclipse 插件安装方法和插件加载失败解决
  9. android 服务不被kill方法收集
  10. (转)认识Android手机--来自MIUI[