zoukankan      html  css  js  c++  java
  • Android获取手机已经安装的程序

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

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

     

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


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

     

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

     

    1. private void uninstallSoftware(Context context, String name) {  
    2.     final PackageManager packageManager = context.getPackageManager();  
    3.     try {  
    4.         PackageInfo pInfo = packageManager.getPackageInfo(name,  
    5.                 PackageManager.COMPONENT_ENABLED_STATE_DEFAULT);  
    6.         if(pInfo!=null){  
    7.             //删除软件  
    8.             Uri uri = Uri.parse("package:"+ name);  
    9.             Intent intent = new Intent(Intent.ACTION_DELETE, uri);  
    10.             context.startActivity(intent);  
    11.         }  
    12.     } catch (NameNotFoundException e) {  
    13.         e.printStackTrace();  
    14.     }  
    15. }  

    从android2.2开始软件可以安装到SD卡上,所以也有相应接口判断程序是否安装到SD卡上

     

     

    1. private void isInstallOnSd(Context context,String name){  
    2.     PackageManager pm=context.getPackageManager();  
    3.     ApplicationInfo appInfo;  
    4.     try {  
    5.         appInfo = pm.getApplicationInfo(name, 0);  
    6.         if ((appInfo.flags & ApplicationInfo.FLAG_EXTERNAL_STORAGE) != 0) {  
    7.                // App on sdcard  
    8.             Log.d("info""app on sd");  
    9.         }  
    10.     } catch (NameNotFoundException e) {  
    11.         e.printStackTrace();  
    12.     }   
    13. }  
  • 相关阅读:
    ASP.NET CORE 2.0 模板 (Admin LTE)
    MVC5+EF6 完整教程17--升级到EFCore2.0
    MVC 5 + EF6 完整教程16 -- 控制器详解
    MVC 5 + EF6 完整教程15 -- 使用DI进行解耦
    MVC 5 + EF6 入门完整教程14 -- 动态生成面包屑导航
    MVC5+EF6 入门完整教程13 -- 动态生成多级菜单
    MVC5+EF6 入门完整教程12--灵活控制Action权限
    MVC5+EF6 入门完整教程11--细说MVC中仓储模式的应用
    LeetCode 504. Base 7
    LeetCode 594. Longest Harmonious Subsequence
  • 原文地址:https://www.cnblogs.com/wangxingliu/p/3489893.html
Copyright © 2011-2022 走看看