android之获取手机安装包里面的信息、获取目录空间的大小

public class RuanjianmanagerInfo extends Object {
    private Drawable  icon;//图标
    private String name;//标题
    private String packname;
    private boolean inRom;//是否在内部存储中
    private boolean userApp;//是否是系统应用

    public Drawable getIcon() {
        return icon;
    }

    public String getName() {
        return name;
    }

    public String getPackname() {
        return packname;
    }

    public boolean isInRom() {
        return inRom;
    }

    public boolean isUserApp() {
        return userApp;
    }

    public void setIcon(Drawable icon) {
        this.icon = icon;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setPackname(String packname) {
        this.packname = packname;
    }

    public void setInRom(boolean inRom) {
        this.inRom = inRom;
    }

    public void setUserApp(boolean userApp) {
        this.userApp = userApp;
    }


}
* 获取某个目录的可用空间
    *
    * */
    private long getAvailabelSpace(String path) {
        StatFs statf = new StatFs(path);
        statf.getBlockCount();//获取分区的个数
        long size = statf.getBlockSize();//获取分区的大小
        long count = statf.getAvailableBlocks();//获取可用分区的个数
        return size * count;

    }
/**
 * Created by wofu on 2018/4/25.
 * 业务方法,提供手机里面所有安装信息
 */

public  class RuanjianManagerInfoProvide {

    private static List<RuanjianmanagerInfo> ruanjianmanagerInfos;


    public static List<RuanjianmanagerInfo> getInfos(Context context){
        PackageManager pm=context.getPackageManager();

List<PackageInfo> packageInfos=pm.getInstalledPackages(0);
        ruanjianmanagerInfos = new ArrayList<RuanjianmanagerInfo>();
for(PackageInfo packinfo:packageInfos){
    //packinfo相当于一个apk包的清单文件
    String packname=packinfo.packageName;// 获取包名
    Drawable ico=packinfo.applicationInfo.loadIcon(pm);//获取icon
    String name=packinfo.applicationInfo.loadLabel(pm).toString();//app名
//判断应用的来源和安装位置
    int flags=packinfo.applicationInfo.flags;//应用程序信息标记
    if((flags&ApplicationInfo.FLAG_SYSTEM)==0){//用户程序

    }else {//系统程序

    }

    if((flags&ApplicationInfo.FLAG_EXTERNAL_STORAGE)==0){//手机内存


    }else {//手机外存储设备


    }

    RuanjianmanagerInfo info=new RuanjianmanagerInfo();
    info.setPackname(packname);
    info.setIcon(ico);
    info.setName(name);
    ruanjianmanagerInfos.add(info);



}

return ruanjianmanagerInfos;
    }
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值