zoukankan      html  css  js  c++  java
  • 团队博客3

    今天对于基本的界面进行了简单的制作,对于本地文件(包括图片、音乐、视频、应用程序)进行了获取。

    界面截图:

      

    简单代码:

    import java.io.File;
    import java.math.BigDecimal;
    import java.util.ArrayList;
    import java.util.List;
    import com.example.shuxing.AppInfor;
    import android.content.Context;
    import android.content.pm.ApplicationInfo;
    import android.content.pm.PackageInfo;
    import android.content.pm.PackageManager;
    import android.content.pm.PackageManager.NameNotFoundException;
    import android.graphics.drawable.Drawable;
    
    
    public class AppInforService {
    	
    	private Context context;
    	private PackageManager pm;
    	public AppInforService(Context context)
    	{
    		this.context=context;
    		pm=context.getPackageManager();
    	}
    	
    	/*得到手机中所有的应用程序信息*/
    	public List<AppInfor> getAppInfor() throws Exception
    	{
    		//创建要返回的集合对象
    		List<AppInfor> appInfor =new ArrayList<AppInfor>();
    		//获取手机中所有安装的应用集合
    		List<ApplicationInfo> applicationInfor=pm.getInstalledApplications(PackageManager.GET_UNINSTALLED_PACKAGES);
    		//遍历所有的应用集合
    		for(ApplicationInfo info : applicationInfor)
    		{
    			if ((info.flags & ApplicationInfo.FLAG_SYSTEM) == 0)  
    	        {  
    				AppInfor appInfo=new AppInfor();
    				
    				//获取应用程序的图标
    				Drawable app_icon=info.loadIcon(pm);
    				appInfo.setIcon(app_icon);
    				
    				//获取应用名称
    				String app_name=info.loadLabel(pm).toString();
    				appInfo.setName(app_name);
    				
    				//获取应用的包名
    				String packageName=info.packageName;
    				appInfo.setPackageName(packageName);
    				
    				//获取版本信息
    				try
    				{
    					PackageInfo packageInfo=pm.getPackageInfo(packageName, 0);
    					String appversion=packageInfo.versionName;
    					appInfo.setAppversion(appversion);
    				}catch(NameNotFoundException e){
    					e.printStackTrace();
    				}
    				//获取路径
    				String path=info.sourceDir;
    				appInfo.setPath(path);
    				
    				//更新显示当前包得大小信息
    				String dir=info.publicSourceDir;
    		        int value=Integer.valueOf((int)new File(dir).length());
    		        BigDecimal apkSize=parseApkSize(value);
    		        String size=apkSize.toString();
    		        appInfo.setSize(size);
    				appInfor.add(appInfo);
    	        }
    			
    			
    		}
    		return appInfor;
    	}
    	private BigDecimal parseApkSize(int size) {
    	    BigDecimal bd = new BigDecimal((double)size/(1024*1024));
    	                BigDecimal setScale = bd.setScale(2, BigDecimal.ROUND_DOWN);
    	    return setScale;
    	}
    }
    

      获取本地文件所使用的类是:PackageManager 。

      PackageManager主要是管理应用程序包,通过PackageManager可以获得应用程序及其相关信息。

  • 相关阅读:
    CSS之链接
    CSS之文本
    CSS之定位
    django 第四天
    django第三天
    django 第二天
    django第一天
    国庆贺礼
    珂朵莉树(ODT)笔记
    20190927
  • 原文地址:https://www.cnblogs.com/XJXYJ/p/5835830.html
Copyright © 2011-2022 走看看