Android编程实现应用获取包名、版本号、权限等信息的方法

本文实例讲述了Android编程实现应用获取包名、版本号、权限等信息的方法。分享给大家供大家参考,具体如下:

/**
* 获取当前应用程序的包名
* @param context 上下文对象
* @return 返回包名
*/
public static String getAppProcessName(Context context) {
    //当前应用pid
    int pid = android.os.Process.myPid();
    //任务管理类
    ActivityManager manager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
    //遍历所有应用
    List<ActivityManager.RunningAppProcessInfo> infos = manager.getRunningAppProcesses();
    for (ActivityManager.RunningAppProcessInfo info : infos) {
      if (info.pid == pid)//得到当前应用
        return info.processName;//返回包名
    }
    return "";
}
/**
* 获取程序 图标
* @param context
* @param packname 应用包名
* @return
*/
public Drawable getAppIcon(Context context,String packname){
   try {
     //包管理操作管理类
     PackageManager pm = context.getPackageManager();
     //获取到应用信息
       ApplicationInfo info = pm.getApplicationInfo(packname, 0);
       return info.loadIcon(pm);
    } catch (NameNotFoundException e) {
      e.printStackTrace();
    }
  return null;
}
/**
* 获取程序的版本号
* @param context
* @param packname
* @return
*/
public String getAppVersion(Context context,String packname){
     //包管理操作管理类
   PackageManager pm = context.getPackageManager();
     try {
       PackageInfo packinfo = pm.getPackageInfo(packname, 0);
       return packinfo.versionName;
      } catch (NameNotFoundException e) {
        e.printStackTrace();
      }
    return packname;
}
/**
* 获取程序的名字
* @param context
* @param packname
* @return
*/
public String getAppName(Context context,String packname){
 //包管理操作管理类
   PackageManager pm = context.getPackageManager();
     try {
         ApplicationInfo info = pm.getApplicationInfo(packname, 0);
         return info.loadLabel(pm).toString();
      } catch (NameNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
      }
    return packname;
}
/*
* 获取程序的权限
*/
public String[] getAllPermissions(Context context,String packname){
     try {
       //包管理操作管理类
       PackageManager pm = context.getPackageManager();
       PackageInfo packinfo =  pm.getPackageInfo(packname, PackageManager.GET_PERMISSIONS);
       //获取到所有的权限
       return packinfo.requestedPermissions;
      } catch (NameNotFoundException e) {
        e.printStackTrace();
      }
    return null;
}
/**
* 获取程序的签名
* @param context
* @param packname
* @return
*/
public static String getAppSignature(Context context,String packname){
     try {
       //包管理操作管理类
       PackageManager pm = context.getPackageManager();
       PackageInfo packinfo = pm.getPackageInfo(packname, PackageManager.GET_SIGNATURES);
       //获取当前应用签名
       return packinfo.signatures[0].toCharsString();
      } catch (NameNotFoundException e) {
        e.printStackTrace();
      }
    return packname;
}
/**
* 获取当前展示 的Activity名称
* @return
*/
private static String getCurrentActivityName(Context context){
    ActivityManager activityManager=(ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
    String runningActivity=activityManager.getRunningTasks(1).get(0).topActivity.getClassName();
    return runningActivity;
}

更多关于Android相关内容感兴趣的读者可查看本站专题:《Android开发入门与进阶教程》、《Android调试技巧与常见问题解决方法汇总》、《Android基本组件用法总结》、《Android视图View技巧总结》、《Android布局layout技巧总结》及《Android控件用法总结》

希望本文所述对大家Android程序设计有所帮助。

您可能感兴趣的文章:

  • Android Studio 修改应用包名实例详解
  • java批量采集豌豆荚网站Android应用图标和包名
  • Android5.1系统通过包名给应用开放系统权限的方法
  • Android编程获取APP应用程序基本信息辅助类【APP名称、包名、图标,版本号等】
  • Android获取应用版本号与版本名称
  • Android获取手机型号/系统版本号/App版本号等信息实例讲解
  • Android获取当前手机网络类型(2g、3g、4g、wifi)以及手机型号、版本号代码
  • Android通过aapt命令获取apk详细信息(包括:文件包名,版本号,SDK等信息)
  • 使用Java代码来比较Android客户端版本号
  • Android 获取未安装的APK图标、版本号、包名等信息方法
(0)

相关推荐

  • Android通过aapt命令获取apk详细信息(包括:文件包名,版本号,SDK等信息)

    公司运维问我怎么在windows上安装模拟器,我你说你安装模拟器干什么?他说,我安装模拟器查看app的包名这些信息做统计. 我顿时想,有必要这样折腾么? 我然后就给他装了Android SDK通过build-tools下面的aapt.exe文件执行命令即可得到所有apk信息. aapt命令 aapt l[ist] [-v] [-a] file.{zip,jar,apk} List contents of Zip-compatible archive. aapt d[ump] [--values]

  • Android获取手机型号/系统版本号/App版本号等信息实例讲解

    MainActivity如下: 复制代码 代码如下: package cn.testgethandsetinfo; import android.os.Bundle; import android.text.TextUtils; import android.widget.TextView; import android.app.Activity; import android.content.Context; import android.content.pm.PackageInfo; imp

  • Android5.1系统通过包名给应用开放系统权限的方法

    常用的给应用开放系统权限的方法是直接将该应用做成系统应用(即在AndroidManifest.xml文件里加上:android:sharedUserId="android.uid.system"),但是这种做法限制了应用本身的自由,也就是说经过系统签名后的系统应用只能够在对应的Android平台上安装使用,无法向其他应用一样放到Android市场里兼容所有的Android设备. 现在此介绍一种通过修改Android平台系统层代码,根据指定的应用包名给对应的应用在该平台上开放系统权限,这

  • Android获取应用版本号与版本名称

    使用包管理器 package com.liunan.myfirstapp.util; import android.content.Context; import android.content.pm.ApplicationInfo; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; /** * Created by 刘楠 on 2016-03-22. */ public class

  • 使用Java代码来比较Android客户端版本号

    关键点 为什么不能使用String.compareTo方法来比较客户端版本号? 举个例子,之前客户端版本号为:9.9.9,而服务器端最新的客户端版本号为:10.0.1,虽然10.0.1明显高于9.9.9,但是按照compareTo方法,这个9.9.9是大于10.0.1的,导致客户端版本号比较错误. Java代码实现 扯了一些,最后还是要show一下代码的,以下是我的客户端版本号比较代码,欢迎吐槽. public static int compareVersion(String version1,

  • Android编程获取APP应用程序基本信息辅助类【APP名称、包名、图标,版本号等】

    本文实例讲述了Android编程获取APP应用程序基本信息辅助类.分享给大家供大家参考,具体如下: 经常会用到 获取App信息,可以用这个工具类,可以获得 APP的应用程序名称.包名.图标,版本号基本信息 //跟App相关的辅助类 public class AppUtils { /** * 获取应用程序名称 */ public static synchronized String getAppName(Context context) { try { PackageManager package

  • java批量采集豌豆荚网站Android应用图标和包名

    Android主题开发者做的主题,如果想代替第三方应用图标,就必须要知道应用的包名.其实想知道应用的包名很简单,直接在浏览器打开Google Play或豌豆荚,打开某应用的页面,看网址你就会发现,网址最后"/"字符后接的就是应用的包名! 估计有人想把常用应用的图标和包名都搞下来,所以用java写了个小程序,批量抓取了豌豆荚上"全部软件"按总下载量排名里1到20页的应用图标与包名. 所有图标都用包名来命名的,里面还有一个packageName.txt文件,包含了应用名

  • Android获取当前手机网络类型(2g、3g、4g、wifi)以及手机型号、版本号代码

    获取手机型号: android.os.Build.MODEL 获取手机的SDK版本号:android.os.Build.VERSION.SDK 获取手机当前网络类型代码如下:这是一个工具类,大家可以保存下来以后方便使用. package com.iqtogether.qxueyou.support.util; import android.content.Context; import android.net.ConnectivityManager; import android.net.Net

  • Android Studio 修改应用包名实例详解

    Android Studio 修改应用包名实例详解 我们平时新建项目有些朋友可能当时就是随意写的一个包名,然后在项目过程中, 又感觉这个包名不太好,所以就要对包名进行修改,根据我们正常的修改方式,是这样的. 在种情况是只能修改最外层的那个名称, 如果我们现在是需要修改中间的某一个,这里就行不通了. 那么我们来看一下如何修改成你最终要的包名. 操作图如下: 看到没有,我们只需要在setting里面,把 compact empty middle packages 这个选项去掉,这样,我们的包的层次结

  • Android 获取未安装的APK图标、版本号、包名等信息方法

    一.获取APK图标 public static Drawable getApkIcon(Context context, String apkPath) { PackageManager pm = context.getPackageManager(); PackageInfo info = pm.getPackageArchiveInfo(apkPath, PackageManager.GET_ACTIVITIES); if (info != null) { ApplicationInfo a

随机推荐