- 浏览: 878170 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
hzw2312:
C = sin(MLatA)*sin(MLatB)*cos(M ...
根据地球上任意两点的经纬度计算两点间的距离 -
zhang_sun:
rewind方法的limit又是多少呢?等于capacity? ...
ByteBuffer的flip,clear及rewind区别 -
kalogen:
一种每次都获取到不同的随机数的办法int ranseed=12 ...
J2ME中Random类的使用 -
kalogen:
估计部署在某个端口下吧,仔细检查一下发布的配置文件
Tomcat负载均衡和集群环境的搭建 -
zhuchao_ko:
文件大点就嗝屁了~~~
Axis 1.4 上传二进制文件(base64Binary)
这个相关的帖子比较多
PackageManager packageManager = this.getPackageManager();
List<PackageInfo> packageInfoList = packageManager.getInstalledPackages(0);
通过以上方法,可以得到手机中安装的所有应用程序,既包括了手动安装的apk包的信息,也包括了系统预装的应用软件的信息,要区分这两类软件可使用以下方法:
a.从packageInfoList获取的packageInfo,再通过packageInfo.applicationInfo获取applicationInfo。
b.判断(applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM)的值,该值大于0时,表示获取的应用为系统预装的应用,反之则为手动安装的应用。
大家可以看下代码,说明已经写在注释中。
获取应用的代码:
/**
* 查询手机内非系统应用
* @param context
* @return
*/
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;
}
获取图片、应用名、包名:
PackageManager pManager = MessageSendActivity.this.getPackageManager();
List<PackageInfo> appList = Utils.getAllApps(MessageSendActivity.this);
for(int i=0;i<appList.size();i++) {
PackageInfo pinfo = appList.get(i);
ShareItemInfo shareItem = new ShareItemInfo();
//set Icon
shareItem.setIcon(pManager.getApplicationIcon(pinfo.applicationInfo));
//set Application Name
shareItem.setLabel(pManager.getApplicationLabel(pinfo.applicationInfo).toString());
//set Package Name
shareItem.setPackageName(pinfo.applicationInfo.packageName);
}
其中 ShareItemInfo 类是我本地自定义的,各位可以忽略!
另为,有人可能在找 分享应用列表,在此一并说下吧。
获取支持分享的应用的代码:
/**
* 查询手机内所有支持分享的应用
* @param context
* @return
*/
public static List<ResolveInfo> getShareApps(Context context){
List<ResolveInfo> mApps = new ArrayList<ResolveInfo>();
Intent intent=new Intent(Intent.ACTION_SEND,null);
intent.addCategory(Intent.CATEGORY_DEFAULT);
intent.setType("text/plain");
PackageManager pManager = context.getPackageManager();
mApps = pManager.queryIntentActivities(intent,PackageManager.COMPONENT_ENABLED_STATE_DEFAULT);
return mApps;
}
由于该方法,返回的并不是 PackageInfo 对象。而是 ResolveInfo。因此获取图片、应用名、包名的方法不一样,如下:
PackageManager pManager = MessageSendActivity.this.getPackageManager();
/*********************查询手机内所有支持分享的应用*********************/
List<ResolveInfo> resolveList = Utils.getShareApps(MessageSendActivity.this);
for(int i=0;i<resolveList.size();i++) {
ResolveInfo resolve = resolveList.get(i);
ShareItemInfo shareItem = new ShareItemInfo();
//set Icon
shareItem.setIcon(resolve.loadIcon(pManager));
//set Application Name
shareItem.setLabel(resolve.loadLabel(pManager).toString());
//set Package Name
shareItem.setPackageName(resolve.activityInfo.packageName);
}
总结:
通过 PackageInfo 获取具体信息方法:
包名获取方法:packageInfo.packageName
icon获取获取方法:packageManager.getApplicationIcon(applicationInfo)
应用名称获取方法:packageManager.getApplicationLabel(applicationInfo)
使用权限获取方法:packageManager.getPackageInfo(packageName,PackageManager.GET_PERMISSIONS)
.requestedPermissions
通过 ResolveInfo 获取具体信息方法:
包名获取方法:resolve.activityInfo.packageName
icon获取获取方法:resolve.loadIcon(packageManager)
应用名称获取方法:resolve.loadLabel(packageManager).toString()
PackageManager packageManager = this.getPackageManager();
List<PackageInfo> packageInfoList = packageManager.getInstalledPackages(0);
通过以上方法,可以得到手机中安装的所有应用程序,既包括了手动安装的apk包的信息,也包括了系统预装的应用软件的信息,要区分这两类软件可使用以下方法:
a.从packageInfoList获取的packageInfo,再通过packageInfo.applicationInfo获取applicationInfo。
b.判断(applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM)的值,该值大于0时,表示获取的应用为系统预装的应用,反之则为手动安装的应用。
大家可以看下代码,说明已经写在注释中。
获取应用的代码:
/**
* 查询手机内非系统应用
* @param context
* @return
*/
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;
}
获取图片、应用名、包名:
PackageManager pManager = MessageSendActivity.this.getPackageManager();
List<PackageInfo> appList = Utils.getAllApps(MessageSendActivity.this);
for(int i=0;i<appList.size();i++) {
PackageInfo pinfo = appList.get(i);
ShareItemInfo shareItem = new ShareItemInfo();
//set Icon
shareItem.setIcon(pManager.getApplicationIcon(pinfo.applicationInfo));
//set Application Name
shareItem.setLabel(pManager.getApplicationLabel(pinfo.applicationInfo).toString());
//set Package Name
shareItem.setPackageName(pinfo.applicationInfo.packageName);
}
其中 ShareItemInfo 类是我本地自定义的,各位可以忽略!
另为,有人可能在找 分享应用列表,在此一并说下吧。
获取支持分享的应用的代码:
/**
* 查询手机内所有支持分享的应用
* @param context
* @return
*/
public static List<ResolveInfo> getShareApps(Context context){
List<ResolveInfo> mApps = new ArrayList<ResolveInfo>();
Intent intent=new Intent(Intent.ACTION_SEND,null);
intent.addCategory(Intent.CATEGORY_DEFAULT);
intent.setType("text/plain");
PackageManager pManager = context.getPackageManager();
mApps = pManager.queryIntentActivities(intent,PackageManager.COMPONENT_ENABLED_STATE_DEFAULT);
return mApps;
}
由于该方法,返回的并不是 PackageInfo 对象。而是 ResolveInfo。因此获取图片、应用名、包名的方法不一样,如下:
PackageManager pManager = MessageSendActivity.this.getPackageManager();
/*********************查询手机内所有支持分享的应用*********************/
List<ResolveInfo> resolveList = Utils.getShareApps(MessageSendActivity.this);
for(int i=0;i<resolveList.size();i++) {
ResolveInfo resolve = resolveList.get(i);
ShareItemInfo shareItem = new ShareItemInfo();
//set Icon
shareItem.setIcon(resolve.loadIcon(pManager));
//set Application Name
shareItem.setLabel(resolve.loadLabel(pManager).toString());
//set Package Name
shareItem.setPackageName(resolve.activityInfo.packageName);
}
总结:
通过 PackageInfo 获取具体信息方法:
包名获取方法:packageInfo.packageName
icon获取获取方法:packageManager.getApplicationIcon(applicationInfo)
应用名称获取方法:packageManager.getApplicationLabel(applicationInfo)
使用权限获取方法:packageManager.getPackageInfo(packageName,PackageManager.GET_PERMISSIONS)
.requestedPermissions
通过 ResolveInfo 获取具体信息方法:
包名获取方法:resolve.activityInfo.packageName
icon获取获取方法:resolve.loadIcon(packageManager)
应用名称获取方法:resolve.loadLabel(packageManager).toString()
发表评论
-
Installation error: INSTALL_PARSE_FAILED_MANIFEST_MALFORMED
2013-08-02 15:27 670Installation error: INSTALL_PA ... -
解决ADB server didn't ACK问题
2013-08-01 16:06 999之前运行eclipse执行android应用都没问题,今天突然 ... -
Android应用签名
2013-01-08 15:05 1355为了要签名? 开发Android的人这么多,完全 ... -
Android中图片与屏幕密度 .
2012-10-10 14:19 857在drawable中的图片在不同密度的设备上显示时,在屏幕上的 ... -
在电脑上安装Android模拟器-部分更新详解
2012-10-09 17:03 1368本文根据如下的模拟器 ... -
android 反射机制中 getMethod()和getDeclaredField()区别
2012-09-15 11:33 10386今天在程序中用到java反 ... -
android2.2 的cookie
2012-08-29 19:22 917public static void getCookies(H ... -
把第三方的jar打包到android的apk文件中
2012-08-23 16:34 2408在android项目中新建一个文件夹libs,必须用这个,不能 ... -
Android调用天气预报的WebService简单例子
2012-08-23 11:47 1006下面例子改自网上例子:http://express.ruank ... -
android 正则表达式
2012-08-21 15:58 1288只能输入数字:"^[0-9]*$"。只能输 ... -
用反射功能找不到匹配的类的时候调试方法
2012-08-19 14:17 3536可以通过输出所有的methods 或者declaredMeth ... -
android 生命周期研究资料
2012-08-06 16:46 1077引言 应用程序组件有一个生命周期——一开始Android ... -
Android-----WebView使用
2012-08-01 20:06 1032大部分内容为网上整理其它高人的帖子,现只作整理,用于查看: ... -
Android开发_如何调用系统默认浏览器访问
2012-08-01 19:31 1011一、启动android默认浏览 ... -
Android代码混淆的实践
2012-07-20 12:48 857发apk的时候当然要考虑保护好自己的代码,Android环境就 ... -
Android 获取文件目录以及文件的删除 .
2012-07-14 22:24 1362//看来看一下效果 //main.xml文件 & ... -
Android Intent的几种用法全面总结
2012-07-14 14:21 882Intent应该算是Android中特有的东西。你可以 ... -
最简单的获取未安装APK文件图标、包名的方法
2012-07-13 17:14 1470package lab.sodino.fetchapkicon ... -
Android获取未安装或已安装apk的版本、图标等资源 .
2012-07-12 23:06 1503在上篇博文中介绍了Android动态加载APK--代码安装、获 ... -
Android 动态加载APK--代码安装、获取资源及Intent调用已安装apk .
2012-07-12 23:05 7111最近在研究Android动态加载APK技术,偶有小得,共享一下 ...
相关推荐
这样,当你在一个APK中调用这段代码时,它会尝试安装指定的APK文件。 4. **安装多个APK** 要安装多个APK,你可以循环执行上述步骤,每次更换不同的APK文件路径。确保在每个安装流程之间给予足够的时间,因为安装...
把要安装的apk放入一个文件夹,选中这个文件夹,插上电脑,就自动安装,只要你有多少个U口,就能同时安装多少台手机。 我500台note2,半小时装好了。哈哈。 若你会修改原厂rom,可以给我发邮件,我想把apk打包到rom里...
本篇文章将详细介绍如何利用`BundleTool`从AAB包获取APK的安装大小,并实现在手机上的安装步骤。 首先,我们需要理解AAB(Android App Bundle)与传统的APK的区别。AAB是一种新的发布格式,它允许Google Play Store...
3. **签名验证**:每个APK在构建时都会被签名,安装时系统会验证签名以确保APK未被篡改。签名也有助于确认应用的发布者。 4. **权限请求**:在Android 6.0及以上版本,部分权限在运行时动态请求,而非安装时一次性...
- **apkInstaller.exe**: 这是一个Windows系统的工具,用于在电脑上安装APK文件到连接的Android设备。首先,确保手机通过USB连接到电脑,并开启USB调试模式。然后运行apkInstaller.exe,选择要安装的APK文件,点击...
然而,在某些情况下,如通过微信分享APK文件时,可能会遇到"apk.1"这样的文件,这是由于微信内置的安全机制所导致的一个常见问题。 标题"Apk.1安装器 1.9版本"表明这是一个专门解决"apk.1"问题的工具。通常,微信在...
本文将详细讲解如何在Android 7.0设备上下载并安装APK应用,以及在这个版本中与APK安装相关的知识点。 1. **APK 文件**:APK 是 Android 应用程序的安装包,类似于 Windows 上的 .exe 文件。它包含了应用的代码、...
在标题“adb命令安装apk到多个devices”中,重点是利用adb批量安装APK文件到多个Android设备或模拟器上,这对于开发者进行测试或分发应用非常方便。 首先,了解adb的基本用法。在命令行中,我们通常使用`adb ...
2. 构建启动Intent:创建一个ACTION_MAIN和CATEGORY_LAUNCHER类型的Intent,设置数据URI为新安装应用的包名。 3. 启动应用:调用startActivity()启动目标应用。 在实际开发中,为了实现上述功能,开发者需要对...
这段代码通过Intent启动了一个用于查看APK文件的操作,从而触发安装过程。 #### 3. 构建原生库 使用Android NDK构建上述Java代码,生成.so文件,并将其放置在Unity项目的`Plugins/Android`目录下。 #### 4. 编写C#...
标题中的“APK包名查看器”是一款专用于查看Android应用程序(APK)包名的工具,它允许用户在电脑上无需安装额外的管理软件就能获取APK的相关信息。描述中提到,用户通常可能需要这样的工具来快速查看APK的包名,而...
unity调用安卓方法实现apk文件的安装。亲测支持安卓7,8,9。附有安卓源码在MyApplication目录下面。请用unity2018.2.13以上版本打开。直接在unity打包安卓即可测试。如果出现打包失败的报错可能是你把项目解压到了...
在APK项目中,`assets`目录是一个可以存放任意文件的地方,开发者可以将需要静默安装的其他APK文件放在这个目录下。在应用程序运行时,可以通过读取`assets`目录中的APK文件,然后调用相应的API进行安装。 为了实现...
Hyper-V系列:windows11开启系统自带安卓虚拟机并安装apk包
可以在应用商店安装部分官方已适配的安卓应用,对爱好者来说,不能自己安装APK软件包始终差点意思,本程序可以为Deepin/UOS上的Uengine安卓运行环境安装/卸载/打包自定义APK软件包,并能发送安装的APK包启动菜单到...
这个包名在Android系统中起到区分不同应用的作用,同时在安装和更新时也至关重要。 标题“查看apk包名”指的是一种能够快速获取APK文件包名的方法。在这种情况下,描述中提到的应用程序提供了一个便捷的方式,只需...
APK包名查看软件工具是一种专门针对Android应用的实用程序,它的主要功能是帮助用户获取APK安装包的包名信息。在Android开发过程中,包名(Package Name)扮演着至关重要的角色,它是应用程序的唯一标识,类似于...
在使用Genymotion时,理解Apk库的管理和安装流程是至关重要的,这有助于提升开发效率,特别是在进行多应用集成测试或对不常见设备配置进行兼容性验证时。同时,确保始终从可靠来源获取Apk,以避免潜在的安全风险。
5. **权限管理**:安装APK时,系统会提示需要的权限列表,用户需谨慎评估后再决定是否继续。了解每个权限的含义可以帮助用户避免不必要的隐私泄露。 6. **兼容性问题**:并非所有APK都适用于所有版本的Android系统...
这个过程通常由Android Studio完成,包括编译源码、生成Dalvik字节码(DEX文件)、资源压缩和打包成APK。打包过程中还会对应用进行签名,确保其来源的可信性。 2. **APK解包**:解包APK是为了查看或修改内部内容,...