`
mickey_hou
  • 浏览: 237094 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Android SDCard操作-1

阅读更多
private static int INSTALLED = 0; // 表示已经安装,且跟现在这个apk文件是一个版本
   
    private static int UNINSTALLED = 1; // 表示未安装
   
    private static int INSTALLED_UPDATE = 2; // 表示已经安装,版本比现在这个版本要低,可以点击按钮更新
   
    private Context context;
   
    private List<MyFile> myFiles = new ArrayList<MyFile>();
   
    public List<MyFile> getMyFiles()
    {
        return myFiles;
    }
   
    public void setMyFiles(List<MyFile> myFiles)
    {
        this.myFiles = myFiles;
    }
   
    public ApkSearchUtils(Context context)
    {
        super();
        this.context = context;
    }
   
    /**
     * @param args
     * 运用递归的思想,递归去找每个目录下面的apk文件
     * File file
     */
    public void FindAllAPKFile(File file)
    {
       
        // 手机上的文件,目前只判断SD卡上的APK文件
        // file = Environment.getDataDirectory();
        // SD卡上的文件目录
        if (file.isFile())
        {
            CommonUtil.log("-------------------------------");
            String name_s = file.getName();
            MyFile myFile = new MyFile();
            String apk_path = null;
            // MimeTypeMap.getSingleton()
            if (name_s.toLowerCase().endsWith(".apk"))
            {
                apk_path = file.getAbsolutePath();// apk文件的绝对路劲
                // System.out.println("----" + file.getAbsolutePath() + "" +
                // name_s);
                PackageManager pm = context.getPackageManager();
                PackageInfo packageInfo = pm.getPackageArchiveInfo(apk_path,
                        PackageManager.GET_ACTIVITIES);
                ApplicationInfo appInfo = packageInfo.applicationInfo;
               
                /**获取apk的图标 */
                appInfo.sourceDir = apk_path;
                appInfo.publicSourceDir = apk_path;
                Drawable apk_icon = appInfo.loadIcon(pm);
                myFile.setApk_icon(apk_icon);
                /** 得到包名 */
                String packageName = packageInfo.packageName;
                myFile.setPackageName(packageName);
               
                /** 得到apk名 */
                String appName = packageInfo.applicationInfo.loadLabel(pm)
                        .toString();
                myFile.setAppName(appName);
               
                /** apk的绝对路劲 */
                myFile.setFilePath(file.getAbsolutePath());
               
                /** apk的版本名称 String */
                String versionName = packageInfo.versionName;
                myFile.setVersionName(versionName);
               
                /** apk的版本号码 int */
                int versionCode = packageInfo.versionCode;
                myFile.setVersionCode(versionCode);
               
                /**安装处理类型*/
                int type = doType(pm, packageName, versionCode);
                myFile.setInstalled(type);
               
                Log.i("ok", "处理类型:" + String.valueOf(type) + "\n"
                        + "------------------我是纯洁的分割线-------------------");
                myFiles.add(myFile);
            }
            // String apk_app = name_s.substring(name_s.lastIndexOf("."));
        }
        else
        {
            File[] files = file.listFiles();
            if (files != null && files.length > 0)
            {
                for (File file_str : files)
                {
                    FindAllAPKFile(file_str);
                }
            }
        }
    }
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics