1 /* 2 * Copyright (C) 2011 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package com.android.cts.verifier; 18 19 import android.content.Context; 20 import android.content.pm.ApplicationInfo; 21 import android.content.pm.PackageInfo; 22 import android.content.pm.PackageManager; 23 import android.content.pm.PackageManager.NameNotFoundException; 24 import android.util.Log; 25 26 class Version { 27 28 private static final String TAG = Version.class.getSimpleName(); 29 30 private static final String UNKNOWN = "unknown"; 31 getVersionName(Context context)32 static String getVersionName(Context context) { 33 return getPackageInfo(context).versionName; 34 } 35 getVersionCode(Context context)36 static int getVersionCode(Context context) { 37 return getPackageInfo(context).versionCode; 38 } 39 getPackageInfo(Context context)40 static PackageInfo getPackageInfo(Context context) { 41 try { 42 PackageManager packageManager = context.getPackageManager(); 43 return packageManager.getPackageInfo(context.getPackageName(), 0); 44 } catch (NameNotFoundException e) { 45 throw new RuntimeException("Could not get find package information for " 46 + context.getPackageName()); 47 } 48 } 49 getMetadata(Context context, String name)50 static String getMetadata(Context context, String name) { 51 try { 52 PackageManager packageManager = context.getPackageManager(); 53 ApplicationInfo applicationInfo = packageManager.getApplicationInfo( 54 context.getPackageName(), PackageManager.GET_META_DATA); 55 String value = applicationInfo.metaData.getString(name); 56 if (value != null) { 57 return value; 58 } 59 } catch (NameNotFoundException e) { 60 Log.e(TAG, "Version.getMetadata: " + name, e); 61 } 62 return UNKNOWN; 63 } 64 } 65