欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

获取android手机中已安装应用信息以及应用安装和卸载代码集合,android卸载,很多APP都有推荐应用列

来源: javaer 分享于  点击 14066 次 点评:31

获取android手机中已安装应用信息以及应用安装和卸载代码集合,android卸载,很多APP都有推荐应用列


很多APP都有推荐应用列表,但是我发现大量的app里的应用推荐没有显示本机是否已经安装了应用,

只要点击都会直接下载推荐的应用;

当然他们这么做显然是想换量来推广,但是这样用户体验就不好了,

本来用户手机上已经安装了该应用,正常情况下推荐应用列表那里应该显示已安装!

(随便选了一个应用如下图都是不显示用户是否已经安装)

那我们要做这种功能,就需要判断已安装应用和应用的已下载未安装,等等一些方法!

/**      * 是否已经安装该应用      * @param context      * @param apk_package 包名      * @return      */      public static boolean isInstallApp(Context context, String apk_package) {          PackageInfo packageInfo;          try {              packageInfo = context.getPackageManager().getPackageInfo(                      apk_package, 0);          } catch (NameNotFoundException e) {              packageInfo = null;              e.printStackTrace();          }          if(packageInfo !=null ){                  return true;          }          return false;      }      /**      * 遍历一个路径下的文件夹内的指定文件      * @param Path 搜索目录      * @param Extension 扩展名(判断的文件类型的后缀名)      * @param IsIterative  是否进入子文件夹        * @return      */      public static final List<String> GetFiles(String Path, String Extension,boolean IsIterative)  {            List<String> apklist = new ArrayList<String>(); // 结果 List             try {              File[] files = new File(Path).listFiles();                for (int i = 0; i < files.length; i++) {                    File f = files[i];                    if (f.isFile()) {                        if (f.getPath() .substring(f.getPath().length() - Extension.length()) .equals(Extension)) // 判断扩展名                             apklist.add(f.getPath());                        if (!IsIterative)                            break;  //如果不进入子集目录则跳出                     } else if (f.isDirectory() &amp;&amp; f.getPath().indexOf("/.") == -1) // 忽略点文件(隐藏文件/文件夹)                         GetFiles(f.getPath(), Extension, IsIterative);  //这里就开始递归了                 }            } catch (Exception e) {              // TODO: handle exception              e.printStackTrace();          }          return apklist;        }       /**      * 根据本地路径安装apk      * @param apk_url      */      public static void installApkFromLocalPath(Context context,String apk_url){           try {              Intent intent = new Intent(Intent.ACTION_VIEW);               intent.setDataAndType(Uri.fromFile(new File(apk_url)), "application/vnd.android.package-archive");               context.startActivity(intent);           } catch (Exception e) {              // TODO: handle exception              e.printStackTrace();          }      }       /**      * 卸载应用      * @param context      * @param apk_pkg 包名      */      public static void unInstallApkFromPackage(Context context,String apk_pkg){           try {              Intent intent = new Intent(Intent.ACTION_DELETE);               intent.setData(Uri.parse("package:"+apk_pkg));              context.startActivity(intent);           } catch (Exception e) {              // TODO: handle exception              e.printStackTrace();          }      }       /**      * 根据包名打开另外一个应用      * @param context      * @param apk_pkg 包名      */      public static void openApkFromPackage(Context context,String apk_pkg){           try {              Intent intent = new Intent(Intent.ACTION_VIEW);                 intent.setComponent(new ComponentName(context, apk_pkg));                 context.startActivity(intent);            } catch (Exception e) {              // TODO: handle exception              e.printStackTrace();          }      }   
相关栏目:

用户点评