您的位置:首页 > 移动开发 > Android开发

Android-获取手机已经安装的程序

2012-10-29 13:57 302 查看
有时候我们会查询手机里面是否安装了某个程序,或者获取已经安装软件名称的集合。

android这边提供了相应的接口。

final PackageManager packageManager = getActivity().getPackageManager();//获取packagemanager
List< PackageInfo> pinfo = packageManager.getInstalledPackages(0);//获取所有已安装程序的包信息
if(pinfo != null){
for(int i = 0; i < pinfo.size(); i++){
String packName = pinfo.get(i).packageName;
Log.d("info", "-->"+packName);
}
}


上面的例子可以打印出安装软件的包名。每个程序的包名在android手机里都是唯一的。

判断手机是否安装了某个程序,如果安装了此程序,删除它。

private void uninstallSoftware(Context context, String name) {
final PackageManager packageManager = context.getPackageManager();
try {
PackageInfo pInfo = packageManager.getPackageInfo(name,
PackageManager.COMPONENT_ENABLED_STATE_DEFAULT);
if(pInfo!=null){
//删除软件
Uri uri = Uri.parse("package:"+ name);
Intent intent = new Intent(Intent.ACTION_DELETE, uri);
context.startActivity(intent);
}
} catch (NameNotFoundException e) {
e.printStackTrace();
}
}
从android2.2开始软件可以安装到SD卡上,所以也有相应接口判断程序是否安装到SD卡上

private void isInstallOnSd(Context context,String name){
PackageManager pm=context.getPackageManager();
ApplicationInfo appInfo;
try {
appInfo = pm.getApplicationInfo(name, 0);
if ((appInfo.flags & ApplicationInfo.FLAG_EXTERNAL_STORAGE) != 0) {
// App on sdcard
Log.d("info", "app on sd");
}
} catch (NameNotFoundException e) {
e.printStackTrace();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐