`
Abel_Chen_
  • 浏览: 17744 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Android 中获取Apk的包名和类名的实现方法

 
阅读更多

 在安卓开发的过程中有时候我们需要调用第三方APK应用的时候,并不知道其中的包名和类名,可以调用下面的方法获取所需要的包名和类名。

  /** 
 * 
 * 通过APK地址获取此APP的包名和版本等信息 
 * */

private void getPackageName() {
        String FilePath="*.apk";//输入APK地址
        PackageManager pm = getPackageManager();    
        PackageInfo info = pm.getPackageArchiveInfo(FilePath, PackageManager.GET_ACTIVITIES);    
        if(info != null){    
            ApplicationInfo appInfo = info.applicationInfo;    
            String appName = pm.getApplicationLabel(appInfo).toString();    
            String packageName = appInfo.packageName;  //获取安装包名称 
            Log.i("Abel_Test", "包名是:"+packageName);
            String version=info.versionName; //获取版本信息 
Log.i("Abel_Tes", "版本信息:"+version);

   }
        }

 

 /** 
 * 
 * 通过包名获取此APP详细信息,包括Activities、services、versioncode、name等等 并且可以直接调用
 * */

private void doStartApplicationWithPackageName(String packagename) {


PackageInfo packageinfo = null;
try {
packageinfo = getPackageManager().getPackageInfo(packagename, 0);
} catch (NameNotFoundException e) {
e.printStackTrace();
}
if (packageinfo == null) {
return;
}


// 创建一个类别为CATEGORY_LAUNCHER的该包名的Intent
Intent resolveIntent = new Intent(Intent.ACTION_MAIN, null);
resolveIntent.addCategory(Intent.CATEGORY_LAUNCHER);
resolveIntent.setPackage(packageinfo.packageName);


// 通过getPackageManager()的queryIntentActivities方法遍历
List<ResolveInfo> resolveinfoList = getPackageManager()
.queryIntentActivities(resolveIntent, 0);


ResolveInfo resolveinfo = resolveinfoList.iterator().next();
if (resolveinfo != null) {
// packagename = 参数packname
String packageName = resolveinfo.activityInfo.packageName;
// 这个就是我们要找的该APP的LAUNCHER的Activity[组织形式:packagename.mainActivityname]
String className = resolveinfo.activityInfo.name;
Log.i("Abel_Test", "类名是:"+className);
// LAUNCHER Intent
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_LAUNCHER);


// 设置ComponentName参数1:packagename参数2:MainActivity路径
ComponentName cn = new ComponentName(packageName, className);
       
intent.setComponent(cn);
startActivity(intent);
}
}

分享到:
评论

相关推荐

    安卓获取apk包名类名

    在Android开发和软件测试中,了解如何获取APK的包名和主类名是一项重要的技能。这有助于测试人员定位应用程序的标识以及启动它的主要入口点。以下是对这一主题的详细阐述: 首先,APK包名是Android应用的唯一标识符...

    获取第三方apk的包名启动类名icon.rar

    在Android开发中,获取第三方APK的包名、启动类名以及图标是常见的需求,尤其在应用管理和自动化测试等领域。这个名为"获取第三方apk的包名启动类名icon.rar"的压缩包文件提供了相关的代码资源,尽管可能并非所有...

    着看所有apk的包名和类名,用于启动或关闭某个app

    在Android开发中,我们可以通过以下方法查看APK的包名和类名: 1. **使用Android Studio**:Android Studio作为官方的集成开发环境,内置了反编译工具。通过打开项目结构,在`build.gradle`文件中可以看到应用的...

    获取第三方APK包名,启动类名

    在Android系统中,获取第三方APK的包名、启动类名以及图标是常见的需求,尤其在应用管理和自动化测试等领域。本文将详细介绍如何实现这些功能。 首先,我们要理解什么是APK包名。APK包名是Android应用程序的唯一...

    易语言apk查看器源码分享 [超级强大]安卓apk包名和类名查看器 专业查看APK的工具 apk包名查看

    易语言apk查看器是一款强大的APK分析工具,主要用于查看安卓应用程序(APK)的基本信息,如包名和类名。这款工具对开发者和逆向工程人员尤其有用,他们需要深入理解APK的内部结构以便进行调试、优化或者安全分析。 ...

    自动获取android包名类名

    在Android开发过程中,获取应用程序的包名和类名是一项常见的任务。这有助于调试、测试以及实现自动化脚本。Ubuntu作为一个流行的Linux发行版,为开发者提供了命令行工具来方便地完成这项工作。本篇文章将详细解释...

    查看apk包名

    在Android开发和应用管理中,了解如何查看APK包名是一项基本技能。APK包名是每个Android应用程序的唯一标识符,它遵循Java的命名规范,通常由一系列小写的域名部分组成,反序排列,例如“com.example.myapp”。这个...

    Android包名类名查看

    这款名为“Android包名类名查看”的小应用,其核心功能是帮助用户获取设备上已安装应用的包名和类名信息。这对于开发者来说非常有用,他们可能需要这些信息来实现如调试、权限检查、自动化测试或分析竞品应用等功能...

    android开发辅助工具 抓取包名类名工具

    在Android开发过程中,调试和分析应用的行为至关重要,而"android开发辅助工具 抓取包名类名工具"就是这样一款实用的工具,它专门用于帮助开发者快速获取设备上安装的应用程序的包名和类名信息。这个工具对于进行...

    Android获取当前运行的类名或者方法

    本文实例讲述了Android获取当前运行的类名或者方法。分享给大家供大家参考。具体实现方法如下: public static String getCurrentMethodName() { int level = 1; StackTraceElement[] stacks = new Throwable()....

    安卓获取apk package activity工具

    总的来说,`安卓获取apk package activity工具`是Android开发和分析过程中的得力助手,它简化了对APK内部结构的理解,使得开发者和研究者能更高效地处理Android应用。通过学习和使用这样的工具,可以提升对Android...

    Android一个apk启动另外一个apk

    或者,如果你仅知道包名,可以使用`getPackageInfo()`方法获取Activity信息,然后设置Intent。 3. **添加额外数据**: 如果需要传递数据给目标Activity,可以使用`putExtra(String, *)`方法,其中`*`可以是各种...

    android打开系统APK

    总之,Android中打开系统APK的基本步骤包括:获取正确的Intent,设置包名或类名,检查应用是否已安装,最后启动Intent。理解并掌握这一过程对于进行Android开发是非常重要的,它能够帮助你实现各种功能,如启动第三...

    Android 查看app包名

    - **Intent交互**:在启动其他应用的组件(如Activity)时,需要指定正确的包名和类名。 - **应用升级**:新版本的APK必须保持与旧版相同的包名,才能覆盖安装并保留原有数据。 总结起来,查看Android应用的包名是...

    PC端,便捷查看安卓应用包名,logo,等基础信息

    描述中提到的“可快速便捷查看安卓应用的包名及logo,以及一些常见的配置信息,需求权限等等”,意味着这个工具不仅提供了包名和图标查看的功能,还能够展示应用程序所需的权限列表。包名是每个Android应用的唯一...

    android两个APK相互调用并传参数

    在Android开发中,有时我们需要实现一个应用程序(APK)调用另一个应用程序并传递参数的功能。这通常是通过Intent机制来完成的,Intent是Android系统中用于启动活动(Activity)、服务(Service)或者其他组件的一种...

    Android 通过反射启动未安装的APK中的Activity

    在Android系统中,反射机制是一种强大的编程技巧,它允许运行时动态访问类、接口、字段和方法,即使这些元素在编译时未知。通过反射,我们可以执行一些在常规编程中无法实现的操作,例如启动未安装的APK中的Activity...

    android 启动手机内包含固定字符串的apk应用

    - `setComponent()`: 直接指定要启动的Activity的Component Name,即包名+类名。 2. **Intent Filter**: 在AndroidManifest.xml中,我们为Activity定义Intent过滤器,这样其他应用可以通过Intent启动它。例如,...

    Android中获取所有应用程序信息

    在Android系统中,获取所有应用程序信息是开发过程中常见的需求,比如构建应用管理界面或实现自定义功能。这个过程涉及到对Android系统的深入理解,特别是对`PackageManager`类的使用。`PackageManager`是Android...

    Android动态加载未安装apk

    1. 创建Activity的Intent:使用`Intent.setComponent()`设置目标Activity的组件名,即`ComponentName`,由包名和类名组成。 2. 启动Activity:通过`Context.startActivity()`方法启动,使用刚才创建的Intent。 ```...

Global site tag (gtag.js) - Google Analytics