How to get package name from apk in Android?

后端 未结 3 965
长情又很酷
长情又很酷 2021-01-29 08:42

I am developing an app which will contain a list of Apps. On click the user will be redirected to the Play Store to download this app. On successful download I have to send that

相关标签:
3条回答
  • 2021-01-29 09:19

    You can get all installed app in device using below code

    final PackageManager pm = getPackageManager();
    //get a list of installed apps.
    List<ApplicationInfo> packages = pm.getInstalledApplications(PackageManager.GET_META_DATA);
    
    for (ApplicationInfo packageInfo : packages) {
        Log.d(TAG, "Installed package :" + packageInfo.packageName);
        Log.d(TAG, "Source dir : " + packageInfo.sourceDir);
        Log.d(TAG, "Launch Activity :" + pm.getLaunchIntentForPackage(packageInfo.packageName)); 
    }
    

    and find package name in for loop.

    0 讨论(0)
  • 2021-01-29 09:33

    I assume you want to do this at runtime, so your app can read its own package_id w/o having this hardcoded. For that you need to use PackageManager's getPackageInfo() method:

    protected String getPackageName() {
        try {
            PackageInfo packageInfo = getPackageManager.getPackageInfo(getPackageName(), 0);
    
            return packageInfo.applicationInfo.packageName;
        } catch (Exception e) {
            e.printStacktrace();
        }
    
        return null;
    }
    
    0 讨论(0)
  • 2021-01-29 09:46

    Use apkanalyzer, its part of the Android studio:

    apkanalyzer manifest application-id path/to/apk/file.apk
    
    0 讨论(0)
提交回复
热议问题