🤖 안드로이드 Android

[안드로이드/Android] 앱 정보 가져오기 (앱아이디, 앱이름, 패키지명, 버전이름, 버전코드)

핑크빛연어 2021. 5. 3. 10:13

 

안드로이드 앱 정보 를 가져오는 코드입니다.

 

AppInfoUtil 라는 Util 파일을 만들고

MainActivity 에서 AppInfoUtil 의 정보를 가져오는 메소드를 이용하여 로그를 출력해 보았습니다.

 

 

작성한 파일 목록 입니다.

 

1. AppInfoUtil.java

2. MainActivity.java

 

 

 

1. AppInfoUtil.java


import android.content.Context;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.telephony.TelephonyManager;

import static android.content.Context.TELEPHONY_SERVICE;

public class AppInfoUtil {

    /**
     * app id 가져오기
     * @param context context
     * @return appId
     */
    public static String getAppId(Context context) {
        String appId = "";
        try {
            PackageManager pm = context.getPackageManager();
            PackageInfo i = pm.getPackageInfo(context.getPackageName(), 0);
            appId = i.applicationInfo.loadDescription(pm) + "";
        } catch(PackageManager.NameNotFoundException e) { }
        return appId;
    }

    /**
     * app name 가져오기
     * @param context context
     * @return appName
     */
    public static String getAppName(Context context) {
        String appName = "";
        try {
            PackageManager pm = context.getPackageManager();
            PackageInfo i = pm.getPackageInfo(context.getPackageName(), 0);
            appName = i.applicationInfo.loadLabel(pm) + "";
        } catch(PackageManager.NameNotFoundException e) { }
        return appName;
    }

    /**
     * package name 가져오기
     * @param context
     * @return packageName
     */
    public static String getPackageName(Context context) {
        String packageName = ""; // 패키지명 예시 데이터
        try {
            PackageManager packagemanager = context.getPackageManager();
            ApplicationInfo appinfo = packagemanager.getApplicationInfo(packageName, PackageManager.GET_META_DATA);
            packageName = packagemanager.getApplicationLabel(appinfo).toString();
        } catch (PackageManager.NameNotFoundException e) {
            e.printStackTrace();
        }
        return packageName;
    }

    /**
     * app version 가져오기
     * @param context context
     * @return versionName
     */
    public static String getVersion(Context context) {
        String versionName = "";
        try {
            PackageInfo pInfo = context.getPackageManager().getPackageInfo(context.getPackageName(), 0);
            versionName = pInfo.versionName + "";
        } catch(PackageManager.NameNotFoundException e) {
            e.printStackTrace();
        }
        return versionName;
    }

    /**
     * app version code 가져오기
     * @param context context
     * @return versionCode
     */
    public static int getVersionCode(Context context) {
        int versionCode = 1;
        try {
            PackageInfo i = context.getPackageManager().getPackageInfo(context.getPackageName(), 0);
            versionCode = i.versionCode;
        } catch(PackageManager.NameNotFoundException e) { }
        return versionCode;
    }

}


 

 

 

2. MainActivity.java


public class MainActivity extends AppCompatActivity {
    private String TAG = MainActivity.class.getSimpleName();
    private Context context = MainActivity.this;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_main);

        Log.d(TAG, "--- getAppId : "+getAppId(context));  //앱아이디
        Log.d(TAG, "--- getAppName : "+getAppName(context));  //앱이름
        Log.d(TAG, "--- getPackageName : "+getPackageName());  //패키지명
		Log.d(TAG, "--- getVersion : "+getVersion(context));  //버전이름
        Log.d(TAG, "--- getVersionCode : "+getVersionCode(context));  //버전코드

    }
    
}

 

 

 

감사합니다 ~ 🤩

 

 

 

728x90
반응형