android 检测应用程序信息
16lz
2021-01-23
android系统监测应用的安装,升级,卸载,可以通过intent.getDataString().substring(8);
如下边:
如下边:
- public class PackageReceive extends BroadcastReceiver {
-
- @Override
- public void onReceive(Context context, Intent intent) {
- String action = intent.getAction();
-
- String packageName = intent.getDataString().substring(8);
- if (action.equals(Intent.ACTION_PACKAGE_ADDED)) {
-
- } else if (action.equals(Intent.ACTION_PACKAGE_REPLACED)) {
-
- } else if (action.equals(Intent.ACTION_PACKAGE_REMOVED)) {
-
- }
- }
- }
- /**
-
- * 通过应用包名获取已安装应用信息
-
- * @param packagename 包名
-
- * @param ctx 上下文
-
- *返回当前安装的应用信息
-
- */
-
- public void getAppInfoByPackageName(String packagename,Context ctx) {
-
- PackageInfo pI = null;
-
- try {
-
- pI = ctx.getPackageManager().getPackageInfo(packagename, 0);
-
- } catch (NameNotFoundException e) {
-
- e.printStackTrace();
-
- }
-
- //获取软件名称
-
- String appName = pI.applicationInfo.loadLabel(ctx.getPackageManager()).toString();
-
- //获取软件图标
-
- Drawable icon = pI.applicationInfo.loadIcon(ctx.getPackageManager());
-
- //获取软件版本号
-
- String versionName = String.valueOf(pI.versionName)
-
- //获取应用大小
-
- long appSize = new File(pI.applicationInfo.publicSourceDir).length() / 1024;
-
- float lastSize = (float) (((int) (appSize / 1024.0 * 100)) / 100.0);
-
- if (appSize >= 1024) {
-
- //应用大小为lastSize + "MB"
-
- } else {
-
- //应用大小为 appSize + "KB"
-
- }
-
- }
-
- }
更多相关文章
- android常用的代码片段
- android webview设置自适应任意大小的pc网页
- Android 定义全局LOG打印日志,并显示调用者相关信息
- android 获取屏幕大小
- Android Camera代码位置
- Android 获取设备信息 异常
- Android解析包名信息
- Android Studio设置类代码模板
- Android PopupWindow动画效果代码