Android获取手机应用

简介:
package yapplications;

public class Applications {
	
//	 private Drawable icon; // 存放图片
     private String label; // 存放应用程序名
     private String packageName; // 存放应用程序包名
    
     private String versionName;
     private int versionCode;
     private String installTime;



     public String getInstallTime() {
		return installTime;
	}

	public void setInstallTime(String installTime) {
		this.installTime = installTime;
	}

	public String getPackageName() {
		return packageName;
	}

	public void setPackageName(String packageName) {
		this.packageName = packageName;
	}

	public String getVersionName() {
		return versionName;
	}

	public void setVersionName(String versionName) {
		this.versionName = versionName;
	}

	public int getVersionCode() {
		return versionCode;
	}

	public void setVersionCode(int versionCode) {
		this.versionCode = versionCode;
	}

	public String getLabel() {
         return label;
     }

     public void setLabel(String label) {
         this.label = label;
     }

//     public String getPackageName() {
//         return packageName;
//     }
//
//     public void setPackageName(String packageName) {
//         this.packageName = packageName;
//     }

 }


package yapplications;

import java.util.ArrayList;
import java.util.List;







import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import ycore.DateFormatTools;
import android.content.Context;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;

public class ApplicationsHelper {
	
	public static String getApplicationsStr(Context context) {
		JSONObject applicationsJson=new JSONObject();
		JSONArray arr=new JSONArray();
		PackageManager pManager = context.getPackageManager();
		List<PackageInfo> paklist = pManager.getInstalledPackages(0);
		ArrayList<Applications> appList  = new ArrayList<Applications>();  
		 if(paklist!=null) {
		for(int i=0;i<paklist.size();i++) {
			Applications app=new Applications();
		    PackageInfo pinfo = paklist.get(i);  
		    JSONObject obj=new JSONObject();
		    //set Icon  
//		 shareItem.setIcon(pManager.getApplicationIcon(pinfo.applicationInfo));  
		    //set Application Name
		    String label=pinfo.applicationInfo.loadLabel(pManager).toString();
		    app.setLabel(label);
		    
		    String packageName=pinfo.packageName;
		    app.setPackageName(packageName);
		    
		    String versionName=pinfo.versionName;
		    app.setVersionName(versionName);
		    
		    int versionCode=pinfo.versionCode;
		    app.setVersionCode(versionCode);
		    
		    long installTime=pinfo.firstInstallTime;
		    String time=DateFormatTools.DateFormat(installTime);
		    app.setInstallTime(time);

		    try {
		    	obj.put("name", label);
				obj.put("packageName", packageName);
				obj.put("versionName", versionName);
				obj.put("versionCode", versionCode);
				obj.put("installTime",time);
			} catch (JSONException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		    arr.put(obj);
		    appList.add(app);
		}	
		try {
			applicationsJson.put("applications", arr);
		} catch (JSONException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return applicationsJson.toString();
		 }
		
		return null;
	}
	
	
	
//	public static List<PackageInfo> getAllApps(Context context) {  
//	    List<PackageInfo> apps = new ArrayList<PackageInfo>();  
//	    PackageManager pManager = context.getPackageManager();  
//	    //获取手机内所有应用  
//	    List<PackageInfo> paklist = pManager.getInstalledPackages(0);  
//	    for (int i = 0; i < paklist.size(); i++) {  
//	        PackageInfo pak = (PackageInfo) paklist.get(i);  
//	        //判断是否为非系统预装的应用程序  
////	        if ((pak.applicationInfo.flags & pak.applicationInfo.FLAG_SYSTEM) <= 0) {  
////	            // customs applications  
//	            apps.add(pak);  
////	        }  
//	    }  
//	    return apps;  
//	}  

}


目录
相关文章
|
14天前
|
存储 安全 Android开发
构建高效的Android应用:Kotlin与Jetpack的结合
【5月更文挑战第31天】 在移动开发的世界中,Android 平台因其开放性和广泛的用户基础而备受开发者青睐。随着技术的进步和用户需求的不断升级,开发一个高效、流畅且易于维护的 Android 应用变得愈发重要。本文将探讨如何通过结合现代编程语言 Kotlin 和 Android Jetpack 组件来提升 Android 应用的性能和可维护性。我们将深入分析 Kotlin 语言的优势,探索 Jetpack 组件的核心功能,并通过实例演示如何在实际项目中应用这些技术。
|
15天前
|
移动开发 调度 Android开发
构建高效Android应用:Kotlin协程的实践指南
【5月更文挑战第30天】在移动开发领域,Android平台的流畅性与效率一直是开发者追求的核心。随着Kotlin语言的普及,其提供的协程特性为编写高效、轻量级的异步代码提供了强大工具。本文将深入探讨如何在Android项目中利用Kotlin协程来优化性能,提升用户体验。我们将从协程的基本概念出发,通过实例演示如何在实际开发中合理运用协程,并讨论协程对资源管理和错误处理的影响。
18 3
|
15天前
|
移动开发 安全 Android开发
构建高效Android应用:Kotlin协程的实践与优化策略
【5月更文挑战第30天】 在移动开发领域,性能优化始终是关键议题之一。特别是对于Android开发者来说,如何在保证应用流畅性的同时,提升代码的执行效率,已成为不断探索的主题。近年来,Kotlin语言凭借其简洁、安全和实用的特性,在Android开发中得到了广泛的应用。其中,Kotlin协程作为一种新的并发处理机制,为编写异步、非阻塞性的代码提供了强大工具。本文将深入探讨Kotlin协程在Android开发中的应用实践,以及如何通过协程优化应用性能,帮助开发者构建更高效的Android应用。
|
16天前
|
移动开发 数据库 Android开发
构建高效Android应用:Kotlin协程的实践指南
【5月更文挑战第30天】 在移动开发领域,性能优化和流畅的用户体验是至关重要的因素。对于Android开发者来说,Kotlin协程作为一种异步编程解决方案,提供了强大且轻量级的机制来处理后台任务,而不会对主线程造成阻塞。本文将深入探讨Kotlin协程的概念、优势以及如何在Android应用中实现它们,从而改善应用响应性和用户满意度。通过实例代码和最佳实践的分享,我们将展示如何有效利用协程来处理网络请求、数据库操作和耗时计算,同时确保UI的流畅性。
|
21小时前
|
前端开发 JavaScript Android开发
手机APP开发|基于安卓APP实现掌上党支部——党员app
手机APP开发|基于安卓APP实现掌上党支部——党员app
|
1天前
|
JSON Android开发 C++
Android c++ core guideline checker 应用
Android c++ core guideline checker 应用
|
1天前
|
网络协议 Android开发 数据安全/隐私保护
Android手机上使用Socks5全局代理-教程+软件
Android手机上使用Socks5全局代理-教程+软件
11 2
|
2天前
|
Android开发 Kotlin
kotlin开发安卓应用 如何修改app安装后的名称
在 Android 应用中,要修改安装后的显示名称,需更新 AndroidManifest.xml 文件中 application 标签的 android:label 属性。可直接在该属性内设置新名称,或在 res/values/strings.xml 文件中修改 app_name 并在 manifest 中引用。推荐使用 strings.xml 方式,以便支持多语言和集中管理。
|
8天前
|
XML Java Android开发
Android应用中如何保护JAVA代码
Android应用中如何保护JAVA代码
5 0
|
8天前
|
编解码 缓存 Android开发
构建高效的Android应用:从内存优化到响应式设计
【5月更文挑战第37天】 在竞争激烈的移动应用市场中,一个高效、流畅的Android应用是吸引和保留用户的关键。本文将深入探讨构建高效Android应用的多个关键方面,包括内存优化策略、布局性能和响应式设计原则。我们将通过具体的技术实践和案例分析,揭示如何提升应用性能,减少资源消耗,并确保在不同设备上的兼容性和用户体验一致性。